-
เลือกใช้ postfix แทน
sendmail เนื่องจาก
-
ข้อกำหนดสภาพแวดล้อมของระบบ
-
ติดตั้งโปรแกรม
apt-get แล้ว
-
ทดสอบกับลินุกซ์
fedora core 1
-
ติดตั้งบน host
ชื่อ myhost.domain หมายเลข IP 192.168.7.19
-
ต้องเป็น host
ที่มีชื่อปรากฎอยู่ใน DNS แล้วจึงจะรับอีเมล์ได้
-
หากยังไม่ใช้
apt-get สามารถติดตั้งด้วย rpm มีขั้นตอนใกล้เคียงกัน
-
ตรวจสอบว่าเคยติดตั้ง
sendmail แล้วหรือไม่ด้วยคำสั่ง rpm -qa | grep sendmail
ถ้ามีโปรแกรม sendmail ติดตั้งอยู่ให้หยุดการทำงานของ sendmail
ด้วยคำสั่ง
/etc/init.d/sendmail stop
-
ติดตั้ง postfix
ด้วยคำสั่ง apt-get install postfix
......ได้ผล....
Preparing...
########################################### [100%]
1:postfix
########################################### [100%]
Done.
ถ้ามีโปรแกรม sendmail ในถอนออกด้วยคำสั่ง apt-get remove sendmail
-
แฟ้มสำคัญสำหรับการปรับแต่งระบบคือ
-
/etc/postfix/main.cf
-
/etc/postfix/master.cf
-
/etc/postfix/alias.cf
-
/etc/postfix/virtual.cf
-
คำสั่งต่างๆที่ควบคุมการทำงานของ postfix
-
ทำงานด้วยเริ่มคำสั่ง /etc/init.d/postfix start
-
ยกเลิกการทำงานด้วยคำสั่ง /etc/init.d/postfix stop
-
ตรวจสอบสถานะการทำงานด้วยคำสั่ง /etc/init.d/postfix status
-
สั่งให้อ่าน
configuration หลังปรับแต่งแฟ้ม /etc/postfix/main.cf
ด้วยคำสั่ง /etc/init.d/postfix reload
-
สั่งให้เริ่มทำงานระบบซ้ำใหม่ด้วยคำสั่ง /etc/init.d/postfix
restart
-
สั่งให้ postfix
ทำงานด้วยคำสั่ง /etc/init.d/postfix start ได้ผลตัวอย่าง
Starting postfix: [
OK ]
แล้วตรวจสอบสถานะการทำงานด้วยคำสั่ง /etc/init.d/postfix status
ได้ผลตัวอย่าง
master (pid 4537) is running...
-
ทดสอบการส่งอีเมล์บน
mail server ตัวนี้โดยป้อนคำสั่งคุยกับ mail server โดยตรงดังนี้
ป้อนคำสั่ง telnet localhost 25 ได้ผลตัวอย่าง
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 rd9.psu.ac.th ESMTP Postfix
ให้ป้อนคำว่า quit ได้ผลคืนกลับมาที่ prompt
quit
221 Bye
Connection closed by foreign host.
-
ทดสอบส่งอีเมล์ด้วยคำสั่งตัวอย่าง
echo "hello" | mail -s test2 your_email_address@yourhost.domain
ตรวจสอบผลงานว่าได้รับอีเมล์ฉบับที่ส่งคือ
ถึง your_email_address@yourhost.domain หัวข้อ test2 ข้อความว่า
hello
-
ถ้าไม่มีการแก้ไขข้อมูล default จะส่งอีเมล์ได้แต่รับอีเมล์ไม่ได้
ลองดูได้ดังนี้
ทดสอบการส่งอีเมล์บน mail server ตัวนี้โดยป้อนคำสั่งคุยกับ mail
server โดยตรงดังนี้
ป้อนคำสั่ง telnet myhost.domain 25 ได้ผลตัวอย่าง
Trying 192.168.7.19...
telnet: connect to address 192.168.7.19: Connection refused
ไม่ต้องตกใจ เพราะไม่ได้ตั้งค่าไว้ให้รับ mail
-
หากต้องการให้รับ mail
ได้ ต้องเป็น host ที่มีชื่อปรากฎอยู่ใน DNS เท่านั้น
แล้วให้แก้ไขแฟ้ม /etc/postfix/main.cf ที่บรรทัดข้อความว่า
inet_interfaces = localhost เปลี่ยนให้เป็นว่า inet_interfaces =
all
แล้วสั่งให้ postfix ทำงานระบบใหม่ด้วยคำสั่ง /etc/init.d/postfix
restart
ทดสอบการส่งอีเมล์บน mail server ตัวนี้โดยป้อนคำสั่งคุยกับ mail
server โดยตรงดังนี้
ป้อนคำสั่ง telnet myhost.domain 25 ได้ผลตัวอย่าง
Connected to myhost.domain.
Escape character is '^]'.
220 myhost.domain ESMTP Postfix
ให้ป้อนคำว่า quit ได้ผลคืนกลับมาที่ prompt
quit
221 Bye
Connection closed by foreign host.
แสดงว่าใช้ได้ ให้ลองทดสอบส่งอีเมล์มาจากเครื่องอื่นมาให้
root@myhost.domain
ตรวจสอบว่าระบบได้รับอีเมล์ฉบับที่ส่ง
ดูจากข้อความด้านท้ายของแฟ้ม /var/spool/mail/postfix
จะมีข้อมูลของอีเมล์ฉบับที่ส่งมาให้
การที่อีเมล์ไปอยู่ที่แฟ้ม /var/spool/mail/postfix
เนื่องจาก default ของระบบกำหนดให้อีเมล์ของ root ถูกส่งไปที่
postfix แทน
-
ถ้าต้องการดูข้อมูลที่ตั้งค่าไว้ในแฟ้ม /etc/main.cf
ให้ใช้คำสั่งดังนี้
postconf -n
หากไม่ได้มีการแสดงค่าที่ต้องการไว้ สามารถดูค่า default
ด้วยคำสั่ง
postconf -d
-
ระบบ mail server
ที่แนะนำไว้ข้างบน เป็นการจัด mailbox แบบ unix ดั้งเดิม
โดย mailbox ของแต่ละ user ถูกแยกเก็บเป็นแฟ้มข้อมูลแบบข้อความที่
/var/spool/mail
เหมาะสมกับระบบที่มี user จำนวนไม่มากประมาณไม่เกิน 1,000 ราย
-
หากต้องการอ่าน
mailbox ด้วยโปรโตคอลแบบ imap หรือ pop3
ต้องติดตั้งโปรแกรม imap server เพิ่มเติมเช่นโปรแกรม uw-imap หรือ
dovecot หรือ cyrus-imapd เป็นต้น
ขอแนะนำให้ใช้ dovecot เพราะสะดวกในการใช้ และ dovecot สามารถทดแทน
uw-imap ได้
fedora core 1 มีโปรแกรม uw-imap แต่ไม่มี dovecot ติดมา
fedora core 2 มีโปรแกรม dovecot แต่ไม่มี uw-imap ติดมา
ส่วนโปรแกรม cyrus-imapd ใช้งานยาก
ควรใช้กับผู้ใช้ขนาดจำนวนหลักเกิน 1 หมื่นคน
ซึ่งมีโปรแกรมติดมากับ fedora core 2 อยู่แล้ว
-
การติดตั้ง imap
แบบของ dovecot ให้ทำดังนี้
apt-get install dovecot
... ได้ผล ....
Preparing...
########################################### [100%]
1:dovecot
########################################### [100%]
Done.
แก้ไขแฟ้ม /etc/dovecot.conf เพื่อเปิดการทำงานของ imap และ pop3
ที่บรรทัดข้อความจากเดิม protocol = imap impas ให้เป็น
protocol = imap imaps pop3 pop3s
สั่งให้ dovecot ทำงานใหม่ด้วยคำสั่ง
/etc/init.d/dovecot reload
ทดสอบการทำงานด้วยคำสั่ง telnet 192.168.7.19 imap
ถ้าได้ผลทำนองนี้แสดงว่าใช้งานได้
Trying 192.168.7.19...
Connected to 192.168.7.19.
Escape character is '^]'.
* OK dovecot ready.
ถ้าไม่มีบรรทัดข้อความว่า OK แสดงว่าเกิดข้อผิดพลาดในการติดตั้ง
-
การ switch ระหว่าง
sendmail ให้ใช้คำสั่งดังนี้
system-switch-mail หรือ
redhat-switch-mail
แล้วเลือก postfix
-
การคอนฟิกเพื่อจำกัดการ relay mail
ให้ดูในหัวข้อ "TRUST AND RELAY CONTROL"
ของไฟล์คอนฟิก /etc/postfix/main.cf
-
โดยให้กำหนดพารามิเตอร์ของ
mynetworks_style ว่ามีค่าเป็น class,
subnet หรือ host
-
โดยค่า default จะเป็น subnet
หมายถึงว่า postfix จะ
"trust" SMTP client
ที่มี IP
อยู่ในเครือข่ายเดียวกับ subnetwork
ที่เป็น local machine ซึ่งบน
Linux จะทำงานได้ถูกต้องเฉพาะ
interfaces ที่ถูกระบุด้วยคำสั่ง
ifconfig
-
การกำหนดค่าเป็น class หมายถึง
postfix จะ "trust" SMTP client
ที่มี IP อยู่ใน
class เดียวกันกับเครือข่ายที่เป็น
Local machine
-
การกำหนดค่าเป็น
host
หมายถึง postfix จะ "trust"
เฉพาะ local machine
-
การติดตั้ง imap
แบบของ uw-imap ให้ทำดังนี้
apt-get install imap
... ได้ผล ....
Preparing...
########################################### [100%]
1:imap
########################################### [100%]
Done.
แก้ไขแฟ้ม /etc/xinetd.d/imap เพื่อเปิดการทำงานของ imap
ที่บรรทัดข้อความจากเดิม disable = yes ให้เป็น disable = no
สั่งให้ xinetd ทำงานใหม่ด้วยคำสั่ง
/etc/init.d/xinetd reload
ทดสอบการทำงานด้วยคำสั่ง telnet 192.168.7.19 imap
ถ้าได้ผลทำนองนี้แสดงว่าใช้งานได้
Trying 192.168.7.19...
Connected to 192.168.7.19.
Escape character is '^]'.
* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN]
192.168.7.19 IMAP4rev1 2003.338rh at Sun, 11 Jul 2004 20:50:42
+0700 (ICT)
ถ้าไม่มีบรรทัดข้อความว่า OK แสดงว่าเกิดข้อผิดพลาดในการติดตั้ง
-
การติดตั้ง imap
แบบของ cyrus-imap ให้ทำดังนี้
apt-get install cyrus-imapd
... ได้ผล ....
1:cyrus-imapd
########################################### [100%]
Done
ให้ปรับปรุงระบบดังต่อไปนี้
-
แก้ไขแฟ้ม
/etc/sysconfig/saslauthd ให้เลือกใช้ PAM ที่บรรทัดข้อความ
MECH=pam
-
กำหนดให้
saslauthd ทำงานทุกครั้งที่บูทเครื่อง ด้วยคำสั่ง
chkconfig saslauthd on
-
แก้ไขแฟ้ม
/etc/postfix/main.cf ให้เลือกใช้ mailbox แบบ lmtp (cyrus)
ทีบรรทัดข้อความ
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
-
แก้ไขแฟ้ม
/etc/imap.conf ให้เพิ่มข้อมูลดังนี้
munge8bit: no
autocreatequota: 10000
lmtp_overquota_perm_failure: yes
createonpost: no
altnamespace: yes
unixhierarchysep: yes
-
กำหนดให้
cyrus-imapd ทำงานทุกครั้งที่บูทเครื่อง ด้วยคำสั่ง
chkconfig cyrus-imapd on
-
สั่งให้ระบบเริ่มทำงานดังนี้
service saslauthd start
service cyrus-imapd start
service postfix restart
-
ทดสอบใช้งานได้เลย