
Postfix เป็น MTA (Message Transport Agent) ใช้ในการรับส่ง e-mail และเป็น Open Source สามารภใช้งานได้โดยไม่เสียค่าใช้จ่าย
ในบทความนี้จะเป็นเนื้อหา การติดตั้ง ตั้งค่า เพื่อให้ Postfix รับและส่ง Email ได้โดยใช้งาน CentOS 8 Server บน Digital Ocean และ Domain Name ของ Namecheap
เตรียมเครื่อง Server
- Login เข้าสู่ Digital Ocean Account เพื่อสร้าง Droplet
เลือก CentOS version 8.3 x64 - เลือกสะเป็กของ VPS
ในตัวอย่างเลือกสะเป็กต่ำที่สุด ราคา $5 ต่อเดือน ไม่ต้องเพิ่ม Block Storage - เลือก Data Center
ในตัวอย่างเลือก Singapore และอื่นๆ เลือกตาม Default - ตั้งรหัสผ่านสำหรับ root
- ตั้งชื่อ Hostname ให้ตรงกับ Domain Name ของตนเองโดยมา mail.yourdomain.com
ตัวอย่างตั้งเป็น mail.doanytech.net - เลือก Project ตามที่ต้องการ
ในตัวอย่างเลือกเป็น doanytech.net
จากนั้นกดปุ่ม Create Droplet - สร้าง Droplet เสร็จเรียบร้อย
- จำ IP Address และ Hostname ไว้สำหรับไปตั้งค่า Domain Name
IP : 167.99.73.29
Hostname : mail.doanytech.net
ตั้งค่า Domain Name
- Login เข้าสู่ Namecheap Account เข้าไปจัดการ Domain
- ลบค่าเดิมออกให้หมดแล้วใส่ค่าใหม่โดยนำ 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 - กดปุ่ม SAVE ALL CHANGES รอประมาณ 48 ชม. เพื่อให้ Domain Name ทำการ Refresh
ติดตั้งโปรแกรม Postfix
- Login เข้าสู่เครื่อง Server Ip : 167.99.73.29 ด้วย sudo user วิธีการเพิ่ม sudo user อ่านที่นี่
จากนั้นทำการ update CentOS$sudo dnf update -y
รอจน update เสร็จสิ้น - ติดตั้งโปรแกรม bind-utils เพื่อใช้งานคำสั้ง $dig และ $host เพื่อตรวจสอบข้อมูล Domain Name
$sudo dnf install bind-utils
พบคำถามให้ตอบ Yes
รอให้ Install เสร็จสิ้น - ตรวจสอบ 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 - ตรวจสอบ Hostname ด้วยคำสั่ง
$host 167.99.73.29
IP Address ต้องชี้ไปที่ Hostname - ติดตั้งโปรแกรม 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 - ตรวจสอบ version ของ postfix
$postconf mail_version
- ดู binaries ที่เกี่ยวข้องกับ Postfix ด้วยคำสั่ง
$rpm -ql postfix | grep /usr/sbin/
- ติดตั้งโปรแกรม iproute เพื่อใช้งานตำสั้ง ss
$sudo dnf install iproute
$sudo ss -lnpt | grep master
- ติดตั้ง Postfix เรียบร้อย
ตั้งค่า Postfix
- ตั้งค่า inet_interfaces
$postconf inet_interfaces
outputinet_interfaces = localhost
แก้ไขค่าเดิม$sudo postconf -e "inet_interfaces = all"
- ตั้งค่า Hostname ให้กับ postfix
$postconf myhostname
outputmyhostname = mail.doanytech.net
ต้องมีค่าเป็น mail.yourdomain.com
ถ้าต้องการแก้ไขค่าเดิมให้ดำเนินการดังนี้$sudo postconf -e "myhostname = mail.doanytech.net"
- ตั้งค่า mydomain ให้กับ postfix
$postconf mydomain
outputmydomain = doanytech.net
ต้องมีค่าเป็น yourdomain.com
ถ้าต้องการแก้ไขค่าเดิมให้ดำเนินการดังนี้$sudo postconf -e "mydomain = doanytech.net"
- ตั้งค่า myorigin ให้กับ postfix
$postconf myorigin
outputmyorigin = $myhostname
แก้ไขค่าให้เป็น yourdomain.com$sudo postconf -e "myorigin = \$mydomain"
- ตั้งค่า mydestination ให้กับ postfix
$postconf mydestination
outputmydestination = $myhostname, localhost.$mydomain, localhost
แก้ไขค่าให้เป็น$sudo postconf -e "mydestination = \$mydomain, \$myhostname, localhost.\$mydomain, localhost"
- Restart Postfix
$sudo systemctl restart postfix
ตั้งค่า Firewall
- ติดตั้งโปรแกรม firewalld
$sudo dnf install firewalld
ตอบ yes
ติดตั้งเสร็จสิ้น จากนั้น Start firewall - Start Firewalld
$sudo systemctl start firewalld - Enable Firewalld เพื่อให้ทำงานทันทีเมืาอเปิดเครื่อง
$sudo systemctl enable firewalld$sudo systemctl status firewalld
กด q ออกจากหน้า status - เปิด port 25 เป็น default port ของ SMTP Server
- ทดสอบโดยใช้โปรแกรม telnet จากเครื่อง client
$telnet mail.doanytech.net 25
telnet ได้สำเร็จ - ทดสอบ 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)
Leave a Reply