รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

Linux Server (CentOS) : เมล์เซิร์ฟเวอร์ กับคอนฟิก postfix เบื้องต้น

    บทความนี้ผมขออธิบายการคอนฟิก 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