บทความนี้อธิบายการคอนฟิก postfix เบื้องต้นบน CentOS 6 โดยเริ่มจากคอนฟิกหลังจากการติดตั้ง CentOS 6 เสร็จใหม่ๆ ยังไม่มีการ update โปรแกรมใดๆ ทั้งสิ้น
ทดสอบบน CentOS 6.3 (x86_64) ที่ติดตั้งแบบ Minimal + Base
โดยดีฟอลต์ CentOS 6 จะติดตั้ง postfix เป็นเมล์เซิร์ฟเวอร์
[root@cent6 ~]# rpm -qa | grep postfix postfix-2.6.6-2.2.el6_1.x86_64
แก้ไขคอนฟิกพื้นฐานของ postfix
ไฟล์คอนฟิกหลักของ postfix คือไฟล์ /etc/postfix/main.cf
หลังจากการแก้ไขคอนฟิก ต้องรีสตาร์ตเซอร์วิส postfix เพื่อให้คอนฟิกใหม่มีผล
[root@cent6 ~]# service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ]
ใช้คำสั่ง netstat -an เพื่อดูการเปิดพอร์ต SMTP (TCP 25) ของ postfix จะเห็นว่า ดีฟอลต์คอนฟิกจากการติดตั้ง รับเมล์เฉพาะจากเครื่องเซิร์ฟเวอร์เองเท่านั้น (localhost) ไม่สามารถรับเมล์จากเครื่องอื่น หรือเครื่องอื่นไม่สามารถส่งเมล์เข้าเซิร์ฟเวอร์เครื่องนี้ได้
[root@cent6 ~]# netstat -an | grep 25 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 ::1:25 :::* LISTEN
แก้ไขคอนฟิกเพื่อรองรับเมล์จากเครื่องอื่นที่ไม่ใช่ localhost (127.0.0.1) ได้
[root@cent6 ~]# cd /etc/postfix/
[root@cent6 postfix]# vi main.cf
...
#inet_interfaces = localhost
inet_interfaces = all
เมื่อเปิดให้ส่งเมล์เข้ามาจากเครื่องอื่นแล้ว โดยดีฟอลต์ postfix จะสามารถรับเมล์ที่ส่งจากเครื่องที่อยู่ใน subnet เดียวกันกับ ip ของเซิร์ฟเวอร์เท่านั้น
หากต้องแก้ไขคอนฟิกว่าสามารถรับเมล์ที่ส่งมาจากเครื่องที่อยู่ใน subnet ไหนได้บ้าง เช่นอนุญาตให้รับเมล์จาก subnet 192.168.2.0/24 และ 192.168.3.0/24 เพิ่มเติม
#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
mynetworks_style = subnet
#mynetworks = 168.100.189.0/28, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
mynetworks = 192.168.2.0/24, 192.168.3.0/24, 127.0.0.0/8
คอนฟิกชื่อโดเมนของเมล์ที่จะรับว่าเป็นของเครื่องเอง ไม่ต้องส่งต่อไปยัง เมล์เซิร์ฟเวอร์เครื่องอื่นต่อไป
#mydestination = $myhostname, localhost.$mydomain, localhost
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
กำหนดว่าเมล์ที่ส่งออกจากเครื่องนี้ จะมีอีเมล์โดเมนเป็นชื่ออะไร
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $mydomain
หากต้องการแก้ไขคอนฟิกให้เก็บเมล์ไว้แบบ Maildir ใน home ของ user ต้องคอนฟิกให้สอดคล้องกับโปรแกรมอ่านเมล์ ที่เราจะคอนฟิกต่อไปเช่น dovecot
คอนฟิกดีฟอลต์คือ Mailbox หมายถึงเก็บไฟล์ mailbox ของ user ในรูปแบบ /var/spool/mail/<username>
แนะนำให้คอนฟิกเป็นแบบ Maildir/
#home_mailbox = Mailbox
#home_mailbox = Maildir/
home_mailbox = Maildir/
รีสตาร์ตเซอร์วิส postfix หลังการแก้ไขคอนฟิก
[root@cent6 ~]# service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ]
ใช้คำสั่ง netstat -an ดูพอร์ต 25 หลังแก้ไขคอนฟิก inet_interfaces
root@cent6 ~]# netstat -an | grep 25 tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 :::25 :::* LISTEN
ข้อมูลอ้างอิง
- ติดตั้งและคอนฟิก dovecot เบื้องต้น บน CentOS 6
- เข้ารหัสการส่งอีเมล์ด้วยการคอนฟิก TLS ใน postfix บน CentOS 6
- ล็อกอินก่อนส่งเมล์ ด้วยการคอนฟิก SMTP AUTH ใน postfix บน CentOS 6
- ติดตั้งและคอนฟิกเบื้องต้น postfix บน Fedora 17
- ติดตั้ง postfix บน Fedora 14 ตอนที่ 1
- ติดตั้ง postfix บน Fedora 14 ตอนที่ 2
- ติดตั้ง CentOS 6.2 : เลือกชุดซอฟต์แวร์ที่จะลง