การเซ็ต Sendmail + dovecot + squirrelmail บน Fedora Core 3

รายละเอียดของบทความ
จัดทำเมื่อ
: 10 เมษายน 2548
แก้ไขล่าสุดเมื่อ
: 10 เมษายน 2548
ทดลองใช้งานบน
: RedHat Fedora Core 3
ผู้เขียน
: อดิศร  ขาวสังข์

บทนำ

ต่อไปนี้เป็นขั้นตอนการเซ็ต
Mail Server ที่เป็น Sendmail บน RedHat Fedora Core 3 และเพื่อให้สามารถทำงานร่วมกับ Web-based email เช่น squirrelmail ที่ต้องเชื่อมต่อเมล์เซิร์ฟเวอร์ผ่าน IMAP ได้  และให้โปรแกรม Mail Client อย่างเช่น Outlook, Kmail, Mozilla mail, Netscape mail ฯลฯ สามารถรับส่งเมล์ได้โดยผ่านโปรโตคอล POP3 หรือ IMAP  ก็จะกล่าวถึงวิธีการเซ็ตโปรแกรม IMAP & POP3 Server ด้วย  โดยโปรแกรม IMAP & POP3 Server ที่มีติดมากับระบบ Add/Remove Application ของ Fedura Core 3 เท่าที่เห็นมีอยู่ 2 ตัวคือ ที่เป็น Dovecot กับ cyrus-imapd แต่เนื่องจาก cyrus-imapd จะนิยมใช้กับระบบที่มี User จำนวนมาก ดังนั้นการเซ็ตค่อนข้างจะยุ่งยาก  จึงไม่ขอเลือกใช้  นั่นคือในที่นี้จะขอเลือกเป็น Dovecot  (แต่ถ้าท่านต้องกการจะดูวีธีการเซ็ต cyrus-imapd ดูได้ ที่นี่)

ขั้นตอนการติดตั้ง
โปรแกรมที่ต้องติดตั้งในที่นี้ขอใช้โปรแกรมที่มีมากับแผ่น Fedora Core 3 ทั้งหมด  โดยโปรแกรมที่ต้องติดตั้งประกอบด้วย 3 โปรแกรมหลัก ๆ คือ
1. โปรแกรม
Sendmail ประกอบด้วยโปรแกรม Semdmail และโปรแกรม Sendmail-cf  โดย Sendmail-cf เป็นไฟล์คอนฟิกกูเรชันของโปรแกรม Sendmail ใช้กำหนดหน้าที่การทำงานต่าง ๆ
2. โปรแกรมที่ทำหน้าที่เป็น IMAP & POP3 Server ซึ่งขอใช้เป็นโปรแกรม dovecot (Sovecot Secure imap server)
3. โปรแกรม Web-based email ที่เป็น Squirrelmail
4. โปรแกรมป้องกันไวรัส spamassassin (อาจจะไม่เลือกก็ได้นะครับ)

ซึ่งวิธีการติดตั้งโปรแกรมทั้งหมดอาจจะติดตั้งได้โดยผ่าน shell prompt (ซึ่งจะไม่ขอกล่าวในที่นี้) หรือจะติดตั้งผ่าน GUI (Add/Remove Application ดังรูป



ขั้นตอนการคอนฟิก
1. การคอนฟิก Sendmail
1.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

หมายเหตุ ไฟล์ sendmail.mc เป็น macro file ซึ่งเมื่อเราแก้ไขค่าในไฟล์นี้แล้วและใช้คำสั่ง make -C /etc/mail ก็จะทำให้มีการเปลี่ยนแปลงค่าในไฟล์คอนฟิกคือไฟล์ sendmail.cf ตามที่เราสั่งจากไฟล์มาโคร  ซึ่งจริง ๆ แล้วเราสามารถทำการคอนฟิกตรงที่ไฟล์ sendmail.cf ได้เลย  แต่การคอนฟิกจากไฟล์มาโครอาจจะสะดวกกว่าครับ

1.
2 กำหนดว่าจะอนุญาตให้เครื่องไหนมารีเลย์ผ่าน smtp ของเราได้บ้าง โดยให้กำหนดที่ไฟล์ /etc/mail/access ซึ่งอาจมีข้อความเป็นดังนี้:
หมายเหตุ ในกรณีระบบเมล์ของท่านไม่สนับสนุนการใช้งานเมล์ผ่านโปรแกรม Mail Client อย่าง Outlook , Kmail, Mozilla mail ฯลฯ ก็ไม่ต้องเซ็ตในข้อนี้นะครับเพราะค่า default ของการรีเลย์มีการอนุญาตให้สำหรับ localhost.localdomain, localhost, 127.0.0.1 อยู่แล้ว  ซึ่งการใช้สำหรับ Web-based email ที่เป็น squirrelmail ก็สามารถใช้งานได้โดยไม่ต้องทำข้อนี้ครับ

           localhost.localdomain            RELAY
           localhost                                      RELAY
          
127.0.0.1                                        RELAY

          
ให้ต่อท้ายเพิ่มดังนี้เช่น

           172.16.0
                                        RELAY
           itwizard.info                                 RELAY

           spammer.com                           DISCARD
           cyberpromo.com                      REJECT 
          

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

           #makemap hash access < access


1.3 กำหนดโดเมนที่จะรับ mail  เป็นการกำหนดว่าจะให้โดเมนไหนรับเมล์ได้บ้าง  โดยให้ใส่ชื่อโดเมนที่จะยอมรับเมล์ในไฟล์ /etc/mail/local-host-names 
ซึ่งในที่นี้เราจะอนุญาตให้รับเมล์ของโดเมน itwizard.info และ south.cattelecom.com ก็ให้เพิ่มค่าโดเมนดังกล่าวเข้าไปในไฟล์ /etc/mail/local-host-names ดังนี้
        
itwizard.info, south.cattelecom.com


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


1.4 ทำการ start หรือ restart โปรแกรม Sendmail โดยอาจจะทำผ่าน GUI หรืออาจใช้คำสั่งดังนี้ :
     
#service sendmail restart

2.การคอนฟิกโปรแกรม IMAP & POP3 Server (Dovecot)
ในกรณีที่ไม่ต้องการให้ใช้งานกับ mail client ค่า default ของโปรแกรม dovecot จะเปิดบริการสำหรับ IMAP Server อยู่แล้ว  จึงไม่ต้องมีการคอนฟิกใด ๆ แต่ถ้าต้องการให้ระบบเมล์สามารถสนับสนุนโปรแกรม Mail Client ที่ทำงานโดยใช้ POP3 ได้ก็ต้องกมีการคอนฟิกเพิ่มเติมดังนี้ :
2.1
แก้ไขไฟล์คอนฟิกของ dovecot คือไฟล์ /etc/dovecot.conf เพื่อเปิดการทำงานของทั้ง imap และ pop3 โดยจากบรรทัดที่มีข้อความเดิมเป็น :
      protocol = imap impas  ให้เป็น
      protocol = imap imaps pop3 pop3s

2.2 สั่งให้ dovecot ทำงานใหม่ด้วยคำสั่ง
      /etc/init.d/dovecot reload หรือ
      service dovecot restart

2.3 ทดสอบการทำงานด้วยคำสั่ง  telnet เช่น
       telnet mail.itwizard.info 143  สำหรับ IMAP  ---> ถ้าการทำงาน OK ก็อาจจะมีข้อความว่า  * OK dovecot ready.
       telnet mail.itwizard.info 110
 สำหรบ POP3
---> ถ้าการทำงาน OK ก็อาจจะมีข้อความว่า  * OK dovecot ready. เช่นกัน
    

3.การคอนฟิก SquirrelMail
3.1 เปลี่ยนไดเร็คทอรี่เข้าไปยังตำแหน่งที่มีไฟล์คอนฟิกของ Squirrelmail ดังนี้
     
cd /usr/share/squirrelmail/config
3.2 รันไฟล์ที่ใช้ในการคอนฟิกคือ conf.pl ดังนี้
     
./conf.pl
3.3 เลือกโดเมนให้ตรงกับโดเมนของตัวเองซึ่งในที่นี้เป็น itwizard.info ดังนี้
      - เลือกเมนู
2 (Server Settings)
      - เลือกเมนูย่อย 1
(Domain)
      - ป้อนชื่อโดเมน (itwizard.info)
3.4 เลือกชนิดของ Mail Server เป็น SMTP ดังนี้
      - เลือกเมนูหมายเลข 2
(Server Settings)
      - เลือกเมนูย่อย 3 (Sendmail or SMTP)
      - เลือก SMTP
3.5 ให้เลือกชนิดของ IMAP เป็น other
       -  เลือกเมนูหมายเลข 2
(Server Settings)
       - เลือกเมนูย่อย A (Update IMAP Settings)
       - เลือกเมนูย่อย 8 (Server Software)
       - เลือก other
3.6 เลือกเซ็ตค่าอื่น ๆ ที่ต้องการเพิ่มเติมได้ตามใจชอบ
3.6 บันทึกการเซ็ตค่าด้วยการเลือกเมนู S (Save data)
3.7 ทดสอบการทำงานของ squirrelmail ด้วยการเปิด web mail ขึ้นมา ซึ่งการติดตั้ง squirrelmail แบบนี้จะมีการสร้าง Alias ไว้ที่ไฟล์    
  
      /etc/httpd/conf.d/squirrelmail.conf  เอาไว้โดยอัตโนมัติเป็นดังนี้ :
      Alias /webmail /usr/share/squirrelmail

ดังนั้นการเรียกใช้งานจึงสามารถเรียกเป็น  http://hostname/webmail หรือ http://ip_address/webmail ได้เลย

ึ่งจากการทดลองเรียกใช้งานปรากฎว่าสามารถใช้งานได้ดีครับ  แต่มีปัญหาเรื่องการ attach file คือจะมีฟ้องว่า
"Could not move/copy file. File not attachedซึ่งตอนนี้ผู้เขียนเองยังแก้ปัญหานี้ไม่ได้ ใครแก้ได้แล้วช่วยบอกบ้างนะครับ

หมายเหตุ สำหรับการใช้งานกับ Mail Client ซึ่งผู้เขียนได้ทดลองใช้กับโปรแกรม MS Outlook ก็ปรากฎว่าสามารถใช้งานได้ดีทั้ง IMAP และ POP3 ครับ

---จบครับ---