วิธีกำหนดค่าเซิร์ฟเวอร์เมลบน Virtual Machine

หากต้องการเปิดพอร์ต 25 บน Virtual Machine (VM) ของคุณ ให้ไปที่ VPS Manager > เลือกแท็บ "Mail Bridge" > กดปุ่ม ‘Add Mail Bridge’

เมื่อมีการตั้งค่าเรคคอร์ด PTR และเปิดใช้งานพอร์ต 25 แล้ว คุณสามารถตั้งค่าเซิร์ฟเวอร์ SMTP ที่คุณต้องการได้ ด้านล่างนี้คือตัวอย่างสำหรับ Postfix, Exim และ Sendmail ใช้ VM IP ที่แสดงใน VPS Manager ของคุณ และตรวจสอบให้แน่ใจว่า ชื่อโดเมนสำหรับเรคคอร์ด PTR ตรงกับโดเมนผู้ส่งของคุณ (เช่น mail.example.com)

การติดตั้งและกำหนดค่า Postfix

# สำหรับ Debian/Ubuntu

sudo apt update

sudo apt install postfix mailutils -y



# สำหรับ Almalinux/Rocky/Cloudlinux/EL

# ตรวจสอบดิสโทรที่ใช้ RPM เพื่อตรวจสอบ

# หากติดตั้ง Postfix แล้ว

rpm -qa | grep postfix

# หากยังไม่ได้ติดตั้ง ให้รันคำสั่งด้านล่างเพื่อติดตั้ง Postfix

sudo dnf install postfix



เมื่อติดตั้ง Postfix แล้ว คุณสามารถเริ่มบริการและตรวจสอบให้แน่ใจว่าบริการจะเริ่มทำงานหลังจากรีบูตเซิร์ฟเวอร์ของคุณ:

sudo systemctl start postfix

sudo systemctl enable postfix

จากนั้น คุณสามารถกำหนดค่าบริการได้ ตัวเลือกทั้งหมดที่จำเป็นสำหรับบริการจะอยู่ในไดเรกทอรี /etc/postfix และไฟล์กำหนดค่าหลักคือ /etc/postfix/main.cf

รันคำสั่งsudo nano /etc/postfix/main.cf เพื่อเริ่มแก้ไขไฟล์กำหนดค่าหลักและเพิ่มหรืออัปเดตบรรทัดเหล่านี้:

inet_interfaces = all

# myhostname ระบุชื่อโฮสต์ของเซิร์ฟเวอร์เมล

myhostname = mail.example.com

# mydomain ระบุโดเมนที่ใช้จัดการอีเมลจริง

domain = example.com

# mail_spool_directory ระบุไดเรกทอรีที่ใช้เก็บไฟล์กล่องจดหมาย

mail_spool_directory = /var/mail

myorigin = /etc/mailname

mydestination = $myhostname, localhost.$mydomain, localhost

relayhost =

inet_protocols = all

smtp_banner = $myhostname ESMTP



รีสตาร์ต Postfix เพื่อใช้การเปลี่ยนแปลง:

sudo systemctl restart postfix



ทดสอบการส่งเมล:

echo "Test message" | mail -s "Test Email" user@recipient.com

การติดตั้งและกำหนดค่า Exim 4

# สำหรับ Ubuntu/Debian

sudo apt update

sudo apt install exim4 -y



คำสั่งด้านล่างจะแสดงอินเทอร์เฟซผู้ใช้แบบวิซาร์ดสำหรับกำหนดค่าซอฟต์แวร์ ซึ่งช่วยให้ผู้ใช้ตัดสินใจได้ว่า Exim จำเป็นต้องแยกการกำหนดค่าออกเป็นหลายไฟล์ หรือจัดเก็บไว้ในไฟล์เดียว:

sudo dpkg-reconfigure exim4-config

หากใช้ตัวเลือกแรก การกำหนดค่าจะถูกจัดเก็บไว้ในไดเรกทอรีย่อย /etc/exim4/conf.d หากเลือกใช้ไฟล์กำหนดค่าไฟล์เดียว ไฟล์นั้นจะเป็น /etc/exim4/exim4.conf

เมื่อกำหนดค่าทั้งหมดเสร็จแล้ว ให้รัน systemctl restart exim4เพื่อให้การเปลี่ยนแปลงมีผล

แก้ไข /etc/exim4/update-exim4.conf.conf เพื่อให้แน่ใจว่า:

# dc_local_interfaces ระบุ IP ของบริการเมลของคุณ (เช่น 203.0.113.10)

dc_local_interfaces='203.0.113.10'

# dc_readhost ระบุชื่อเมลของระบบของคุณ

dc_readhost='example.com'

# dc_other_hostnames ระบุชื่อโฮสต์ของระบบ

dc_other_hostnames='mail.example.com'



รีสตาร์ต Exim เพื่อใช้การเปลี่ยนแปลง:

sudo systemctl restart exim4


ทดสอบการส่งอีเมลโดยรันคำสั่งด้านล่าง:

echo "Mail test" | mail -s "Exim Test" user@recipient.com

การติดตั้งและกำหนดค่า Sendmail

# สำหรับ Ubuntu/Debian

sudo apt update

sudo apt install sendmail sendmail-bin -y

# สำหรับ Almalinux/Cloudlinux/RHEL

yum install sendmail sendmail-cf mailutils


ไฟล์กำหนดค่าหลักของ Sendmail คือ /etc/mail/sendmail.cf หลีกเลี่ยงการแก้ไขไฟล์นี้โดยตรง หากจำเป็นต้องแก้ไขการกำหนดค่า ให้แก้ไขไฟล์ /etc/mail/sendmail.mc แทน สำรองไฟล์กำหนดค่าต้นฉบับไว้ และใช้หนึ่งในทางเลือกต่อไปนี้เพื่อสร้างไฟล์กำหนดค่าใหม่:

1) ใช้ makefile ที่มาพร้อมกับ /etc/mail เพื่อสร้างการกำหนดค่าใหม่:

make all -C /etc/mail/

 

ไฟล์ทั้งหมดที่สร้างขึ้นใน /etc/mail จะถูกสร้างใหม่อีกครั้งหากมีความจำเป็น

2) หรืออีกทางหนึ่ง คุณอาจใช้ตัวประมวลผลมาโคร m4 เพื่อสร้าง /etc/mail/sendmail.cf ใหม่ ตัวประมวลผลมาโคร m4 ไม่ได้ติดตั้งมาโดยค่าเริ่มต้น ก่อนใช้เพื่อสร้าง /etc/mail/sendmail.cf ให้ติดตั้งแพ็กเกจ m4 ในฐานะ root:

# สำหรับ Almalinux/Cloudlinux/RHEL

yum install m4


# สำหรับ Ubuntu/Debian

apt install m4


ไฟล์กำหนดค่า Sendmail ต่อไปนี้อยู่ในไดเรกทอรี /etc/mail/:

  • access- ระบุว่าระบบใดสามารถใช้ Sendmail สำหรับเมลขาออกได้

  • domaintable- การแมปชื่อโดเมน

  • local-host-names - นามแฝงสำหรับโฮสต์ของเซิร์ฟเวอร์

  • mailertable- คำสั่งที่ใช้แทนที่การกำหนดเส้นทางสำหรับโดเมนเฉพาะ

  • virtusertable- ระบุรูปแบบนามแฝงเฉพาะโดเมน ซึ่งช่วยให้สามารถโฮสต์หลาย virtual domains บนเครื่องได้


ด้านล่างนี้ คุณสามารถดูตัวอย่างวิธีแก้ไขไฟล์กำหนดค่าได้:

# การแก้ไขนามแฝงโฮสต์ของเซิร์ฟเวอร์:

echo "mail.example.com" > /etc/mail/local-host-names


# การผูกกับ Mail IP โดยแก้ไข /etc/mail/sendmail.mc:
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Addr=203.0.113.10')dnl


# การสร้างการกำหนดค่าใหม่:
sudo m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf


# การทดสอบ:

echo "Hello from Sendmail" | mail -s "Sendmail test" user@recipient.com

ไฟล์กำหนดค่าหลายไฟล์ที่กล่าวถึงข้างต้นต้องจัดเก็บข้อมูลของตนไว้ในไฟล์ฐานข้อมูลก่อนที่การเปลี่ยนแปลงใด ๆ จะมีผล หากต้องการรวมการเปลี่ยนแปลงใด ๆ ที่ทำในไฟล์กำหนดค่า ให้รันคำสั่ง makemap hash /etc/mail/<name> < /etc/mail/<name>ในฐานะ root โดยที่ <name> หมายถึงชื่อของการกำหนดค่าที่จะอัปเดต

รีสตาร์ตกระบวนการ Sendmail โดยรันคำสั่ง systemctl restart sendmail

จำเป็นต้องใช้อีเมลที่ถูกต้อง