การเซ็ต Mail Server ขั้นพื้นฐานบน Linux โดยใช้ Sendmail


ต่อไปนี้เป็นขั้นตอนการเซ็ต
Mail Server บน Linux โดยใช้ Sendmail (SMTP) ที่ทำหน้าที่รับส่งเมล์ และใช้ POP3 กับ IMAP4 ในการติดต่อระหว่าง Mail Client กับ Mail Server โดยมีขั้นตอนพอสรุปได้ดังนี้ :

1.ติดตั้งโปรแกรม Sendmail แล้ว Start ให้ทำงาน (วิธีการ Start/Stop/Restart  Service ที่นิยมใช้กันดูได้ที่นี่)  และตรวจสอบว่าทำงานแล้วยังโดยคำสั่ง :

  
#netstat –na |grep 25
หรือ
  
#ps –ef |grep sendmail หรือ
   telnet ที่ port 25

2.ติดตั้ง POP3 แล้ว start ให้ทำงาน  ตรวจสอบว่าทำงานแล้วยังโดยใช้คำสั่ง :
   #netstat –na | grep 110
หรือ
  
telnet ที่ port 110

3.ติดตั้ง IMAP แล้ว start ให้ทำงาน  ตรวจสอบว่าทำงานแล้วยังโดยใช้คำสั่ง :
   #netstat –na |grep 143 หรือ
  
telnet ที่port 143

4.คอนฟิก Sendmail
   4.1 แก้ไขไฟล์ /etc/mail/sendmail.mc
ในบรรทัดที่เขียนว่า  DAEMON_OPTIONS(‘Port=smtp,Addr=127.0.0.1, Name=MTA’) ให้เปลี่ยน 127.0.0.1 เป็น 0.0.0.0 เพื่อเปิดกว้างให้ทุกคนสามารถใช้ Sendmail (SMTP) ได้  แล้ว run macro ดังนี้:

       #make  -C  /etc/mail

   4.2 กำหนดว่าจะอนุญาตให้เครื่องไหนมาใช้ smtp บ้าง โดยให้กำหนดที่ไฟล์ /etc/mail/access ซึ่งอาจมีข้อความเป็นดังนี้:

           localhost.localdomain            RELAY
           localhost                                      RELAY
         
127.0.0.1                                        RELAY

          
ให้ต่อท้ายเพิ่มดังนี้เช่น
          
           southcat.net                                DISCARD
           cyberpromo.com                      REJECT 
          
202.129.18                                   RELAY

           ซึ่งก็หมายถึงเป็นการอนุญาติให้ IP Address ที่ขึ้นต้นด้วย 202.129.16 สามารถใช้ SMTP ได้ แต่ปฏิเสธเมล์ที่มีโดเมนเป็น southcat.net และ cyberrpromo.com
           จากนั้นให้แปลงข้อมูลจาก access ไปเป็น access.db ดังนี้ :

           #makemap hash access < access

   4.3 กำหนดโดเมนที่จะรับ mail ให้ใส่โดเมนของเราที่จะยอมรับเมล์ในไฟล์ /etc/mail/local-host-names 
เช่น
             itwizard.info
             mydomain.com

          หรือจะใส่ค่าในไฟล์ /etc/mail/sendmail.cf
ดังนี้
          Cwlocalhost  itwizard.info, mydomain.com
          โดยให้ # หน้าบรรทัดที่มีข้อความว่า Fw /etc/mail/local-host-names เพื่อไม่ให้ไปเรียกใช้งานไฟล์ /etc/mail/local-host-names ดังนี้ :
           #Fw /etc/mail/local-host-names

5.การกำหนดขนาดในการรับส่งเมล์
ที่
sendmail จะมีไฟล์ /etc/mail/sendmail.mc ที่ใช้สำหรับสร้างมาโครให้กลายเป็น  config file ที่แท้จริงคือ /etc/mail/sendmail.cf  การกำหนดขนาดของเมล์โดยค่า Default จะเป็น 2000000 bytes ซึ่งค่านี้สามารถกำหนดได้ในไฟล์ /etc/mail/semdmail.mc ตรงค่าที่เขียนว่า:

define('UUCP_MAILER_MAX', '2000000')


6.Restart Sendmail อีกครั้ง

7.กรณีทำเป็น web based email
กรณีทำเป็น web based email โปรโตคอลที่จำเป็นต้องใช้ คือ SMTP แต่ก็มี Web based email างตัวเช่น SquirrelMail ้องใช้โปรโคคอล IMAP ้วยโปรแกรมถึงจะทำงานได้
   ดังนั้นในกรณีที่ใช้เป็น web based email ย่างเดียว โปรโตคอลไหนที่ไม่จำเป็นต้องใช้ก็ไม่ควรจะเปิดบริการครับ  

แต่มีสิ่งที่ควรพิจารณาคืออาจจะเจอปัญหากับการส่งเมล์ได้ไม่เกิน 524288
bytes ซึ่งวิธีการแก้หรือพิจารณามีสองส่วนคือ :

ส่วนที่ 1 เป็นส่วนที่เกี่ยวกับ Apache ครับ อยู่ที่ /etc/httpd/conf.d/php.conf  ตรงข้อความต่อไปนี้ :

<Files *.php>
    SetOutputFilter PHP
    SetInputFilter PHP
    LimitRequestBody 524288
</Files>

ค่าของ LimitRequestBody
ค่าอาจจะเป็น 524288 นั่นคือเราจะไม่สามารถแนบไฟล์ได้เกิน ค่านี้ (กรณีใช้งานผ่านเว็บเมล์เท่านั้น) ดังนั้นถ้าต้องการให้ Attachment ได้มาก ๆ ก็ต้องเปลี่ยนเป็นค่าที่มากกว่าแล้ว restart apache ใหม่อีกครั้ง

ส่วนที่ 2 (ค่า default อาจจะใช้ได้อยู่แล้ว) ก็จะเป็นส่วนไฟล์ /etc/php.ini ตรงค่าของ upload_max_filesize ก็ควรจะเท่ากับค่าของ LimitRequestBody  อย่าลืมให้ค่า file_uploads = on ด้วยนะครับ

หมายเหตุ
การติดต่อระหว่าง Mail Client กับ Mail Server สามารถจะใช้ได้ทั้ง POP3 และ IMAP4 บางทีท่านอาจจะเลือกใช้ทั้งสองตัว หรือเลือกใช้ตัวใดตัวหนึ่งก็ได้ ถ้าท่านเลือกใช้ตัวใดตัวหนึ่ง ก็ควรจะติดตั้งเฉพาะตัวที่ท่านเลือกใช้เท่านั้น หรือจะปิด Service ของอีกตัวซะก็ได้