Set up a basic Postfix SMTP Server

Postfix เป็น MTA (Message Transport Agent) ใช้ในการรับส่ง e-mail และเป็น Open Source สามารภใช้งานได้โดยไม่เสียค่าใช้จ่าย

ในบทความนี้จะเป็นเนื้อหา การติดตั้ง ตั้งค่า เพื่อให้ Postfix รับและส่ง Email ได้โดยใช้งาน CentOS 8 Server บน Digital Ocean และ Domain Name ของ Namecheap

เตรียมเครื่อง Server

  1. Login เข้าสู่ Digital Ocean Account เพื่อสร้าง Droplet
    เลือก CentOS version 8.3 x64
  2. เลือกสะเป็กของ VPS
    ในตัวอย่างเลือกสะเป็กต่ำที่สุด ราคา $5 ต่อเดือน ไม่ต้องเพิ่ม Block Storage
  3. เลือก Data Center
    ในตัวอย่างเลือก Singapore และอื่นๆ เลือกตาม Default
  4. ตั้งรหัสผ่านสำหรับ root
  5. ตั้งชื่อ Hostname ให้ตรงกับ Domain Name ของตนเองโดยมา mail.yourdomain.com
    ตัวอย่างตั้งเป็น mail.doanytech.net

  6. เลือก Project ตามที่ต้องการ
    ในตัวอย่างเลือกเป็น doanytech.net
    จากนั้นกดปุ่ม Create Droplet
  7. สร้าง Droplet เสร็จเรียบร้อย
  8. จำ IP Address และ Hostname ไว้สำหรับไปตั้งค่า Domain Name
    IP : 167.99.73.29
    Hostname : mail.doanytech.net

ตั้งค่า Domain Name

  1. Login เข้าสู่ Namecheap Account เข้าไปจัดการ Domain
  2. ลบค่าเดิมออกให้หมดแล้วใส่ค่าใหม่โดยนำ Hostname และ IP Address จาก Digital Ocean มาใส่
    Host Record
    A record @ 167.99.73.29 auto
    A record mail 167.99.73.29 auto
    CNAME record www doanytech.net auto

    Mail Setting
    MX record @ mail.doanytech.net 0 auto
  3. กดปุ่ม SAVE ALL CHANGES รอประมาณ 48 ชม. เพื่อให้ Domain Name ทำการ Refresh

ติดตั้งโปรแกรม Postfix

  1. Login เข้าสู่เครื่อง Server Ip : 167.99.73.29 ด้วย sudo user วิธีการเพิ่ม sudo user อ่านที่นี่

    จากนั้นทำการ update CentOS
    $sudo dnf update -y

    รอจน update เสร็จสิ้น
  2. ติดตั้งโปรแกรม bind-utils เพื่อใช้งานคำสั้ง $dig และ $host เพื่อตรวจสอบข้อมูล Domain Name
    $sudo dnf install bind-utils

    พบคำถามให้ตอบ Yes

    รอให้ Install เสร็จสิ้น
  3. ตรวจสอบ Domain Name record ด้วยคำสั่ง
    $dig A doanytech.net
    ต้องมี IP : 167.99.73.29

    $dig MX doanytech.net
    ต้องมี mail.doanytech.net

    $dig A mail.doanytech.net
    ต้องมี IP : 167.99.73.29
  4. ตรวจสอบ Hostname ด้วยคำสั่ง
    $host 167.99.73.29
    IP Address ต้องชี้ไปที่ Hostname
  5. ติดตั้งโปรแกรม Postfix
    $sudo dnf install postfix

    พบคำถามตอบ yes แล้วรอให้ติดตั้งเสร็จสิ้น

    Start โปรแกรม Postfix ด้วยคำสั่ง
    $sudo systemctl start postfix
    ตั้งค่าให้โปรแกรม Postfix Startup เมื่อเปิดเครื่อง
    $sudo systemctl enable postfix
    ตรวจสอบสถานะ postfix ด้วยคำสั่ง
    $sudo systemctl status postfix

    ต้องพบคำว่า enable ใน status
    กด q เพื่อออกจากหน้าจอ status
  6. ตรวจสอบ version ของ postfix
    $postconf mail_version
  7. ดู binaries ที่เกี่ยวข้องกับ Postfix ด้วยคำสั่ง
    $rpm -ql postfix | grep /usr/sbin/
  8. ติดตั้งโปรแกรม iproute เพื่อใช้งานตำสั้ง ss
    $sudo dnf install iproute
    $sudo ss -lnpt | grep master
  9. ติดตั้ง Postfix เรียบร้อย

ตั้งค่า Postfix

  1. ตั้งค่า inet_interfaces
    $postconf inet_interfaces
    output
    inet_interfaces = localhost
    แก้ไขค่าเดิม
    $sudo postconf -e "inet_interfaces = all"
  2. ตั้งค่า Hostname ให้กับ postfix
    $postconf myhostname
    output
    myhostname = mail.doanytech.net
    ต้องมีค่าเป็น mail.yourdomain.com
    ถ้าต้องการแก้ไขค่าเดิมให้ดำเนินการดังนี้
    $sudo postconf -e "myhostname = mail.doanytech.net"
  3. ตั้งค่า mydomain ให้กับ postfix
    $postconf mydomain
    output
    mydomain = doanytech.net
    ต้องมีค่าเป็น yourdomain.com
    ถ้าต้องการแก้ไขค่าเดิมให้ดำเนินการดังนี้
    $sudo postconf -e "mydomain = doanytech.net"
  4. ตั้งค่า myorigin ให้กับ postfix
    $postconf myorigin
    output
    myorigin = $myhostname
    แก้ไขค่าให้เป็น yourdomain.com
    $sudo postconf -e "myorigin = \$mydomain"
  5. ตั้งค่า mydestination ให้กับ postfix
    $postconf mydestination
    output
    mydestination = $myhostname, localhost.$mydomain, localhost
    แก้ไขค่าให้เป็น
    $sudo postconf -e "mydestination = \$mydomain, \$myhostname, localhost.\$mydomain, localhost"
  6. Restart Postfix
    $sudo systemctl restart postfix

ตั้งค่า Firewall

  1. ติดตั้งโปรแกรม firewalld
    $sudo dnf install firewalld

    ตอบ yes

    ติดตั้งเสร็จสิ้น จากนั้น Start firewall
  2. Start Firewalld
    $sudo systemctl start firewalld
  3. Enable Firewalld เพื่อให้ทำงานทันทีเมืาอเปิดเครื่อง
    $sudo systemctl enable firewalld

    $sudo systemctl status firewalld

    กด q ออกจากหน้า status
  4. เปิด port 25 เป็น default port ของ SMTP Server
  5. ทดสอบโดยใช้โปรแกรม telnet จากเครื่อง client
    $telnet mail.doanytech.net 25

    telnet ได้สำเร็จ
  6. ทดสอบ Telnet จากเครื่อง server ไปยัง SMTP Server อื่น เช่น Gmail
    ติดตั้งโปรแกรม telnet ที่เครื่องที่ติดตั้ง postfix
    $sudo dnf install telnet -y

    ทดสอบ telnet ไปยัง gmail
    $telnet gmail-smtp-in.l.google.com 25

    ต้อง Telnet ให้สำเร็จ

ทดสอบส่ง E-mail ด้วย sendmail

ใช้คำสั่ง sendmail
$echo “test email” | sendmail aod@doanytech.com

ตรวจสอบใน Inbox


ทดสอบส่ง E-mail ด้วย mailx

ติดตั้งโปรแกรม mailx
$sudo dnf install mailx

ทดสอบส่ง mail ด้วย mailx

$mail aod@doanytech.com

ตรวจสอบ Inbox


**กรณีส่งไปยัง g-mail จะถูกจัดเป็น spam วิธีการแก้ไขจะมาเขียนในบทความถัดไป **

ทดสอบส่ง email มาหา Postfix

ใช้โปรแกรม Mail Client ทั่วไปส่ง Mail ไปยัง Postfix

ใช้คำสั่ง mail เพื่อตรวจเช็ค inbox
$mail

&1 เพื่ออ่าน Mail

&q เพื่อออกจากโปรแกรม mail

สรุป

การติดตั้งและตั้งค่า Postfix SMTP Server มีขั้นค่อนข้างยุ่งยากพอสมควรเพื่อมีหลายส่วนที่ต้องทำงานร่วมกันเช่น Server, Domain Name เป็นต้น แต่ไม่ยากเกินความสามารถของทุกท่านแน่นอน

แหล่งที่มาของข้อมูล

Run Your Own Email Server on CentOS 8/RHEL 8 – Postfix SMTP Server (linuxbabe.com)

Be the first to comment

Leave a Reply

Your email address will not be published.


*