วิธีติดตั้งและกำหนดค่า Sendmail เพื่อใช้ผู้ให้บริการอีเมลใด ๆ เป็น SMTP Relay ของคุณ

บทความนี้ถือว่าคุณจะใช้ Ubuntu Server 20.04 หรือ 24.04.

แรงจูงใจ

Sendmail เป็นที่รู้จักในด้านความน่าเชื่อถือที่แข็งแกร่ง ซึ่งเป็นเหตุผลว่าทำไมมันถึงเป็นตัวแทนการโอนย้ายจดหมาย (MTA) ที่ WordOps ชื่นชอบ อย่างไรก็ตาม การตั้งค่าของมัน โดยเฉพาะอย่างยิ่งในระหว่างงานเช่น การตรวจสอบสิทธิ์ การเข้ารหัส และการคอมไพล์ อาจดูซับซ้อนมาก แม้แต่สำหรับผู้ดูแลระบบที่มีประสบการณ์ แต่อย่ากลัวไป! ด้วยความเข้าใจที่ชัดเจนและเป็นขั้นตอน กระบวนการเหล่านี้สามารถจัดการได้ไม่ยากเลย มาดำดิ่งและสำรวจวิธีการตั้งค่านี้ให้เชี่ยวชาญกันเถอะ!

ทางเลือก

หากคุณต้องการแทนที่ Sendmail อาจเพื่อบางสิ่งที่ง่ายขึ้น ตัวเลือกเช่น Postfix, SSMTP หรือ Nullmailer ล้วนเป็นตัวเลือกที่ยอดเยี่ยม อย่างไรก็ตาม หากคุณเพียงแค่ต้องการส่งอีเมลผ่าน WordPress และไม่สนใจข้อมูลที่มีค่าทั้งหมดที่มาจากเซิร์ฟเวอร์ของคุณ, FluentSMTP น่าจะเป็นตัวเลือกที่ดีที่สุด โปรดทราบว่าหากคุณยังคงต้องการปลั๊กอิน SMTP บนเว็บไซต์ของคุณ เช่น สำหรับฟังก์ชันการบันทึก เราสามารถเพิ่มได้แม้ว่าจะได้กำหนดค่าไว้บนเซิร์ฟเวอร์แล้วก็ตาม.

ติดตั้ง Sendmail

Sendmail เป็นส่วนหนึ่งของ WordOps Stack และสามารถติดตั้งได้อย่างง่ายดายด้วย:

ติดตั้ง wo stack --sendmail
sudo apt install libsasl2-modules

คุณยังสามารถติดตั้งมันใน Ubuntu ด้วย APT:

sudo apt update
sudo apt install sendmail
sudo apt install libsasl2-modules

ติดตั้ง mailutils ไม่ใช่ข้อกำหนด แต่จะช่วยให้ sendmail มีความเข้ากันได้มากขึ้นในระบบของคุณ:

sudo apt install mailutils

สร้างไฟล์การตรวจสอบสิทธิ์

สร้างไฟล์ใหม่สำหรับข้อมูลการรับรองความถูกต้องใน /etc/mail/authinfo, และเพิ่มบรรทัดต่อไปนี้ลงในไฟล์ โดยแทนที่ YOUR_USERNAME และ YOUR_API_KEY ด้วยข้อมูลประจำตัวของผู้ให้บริการอีเมลธุรกรรมของคุณจริง (ในบางผู้ให้บริการ สามารถใช้โทเค็นเดียวเป็นทั้งชื่อผู้ใช้และรหัสผ่านได้):

AuthInfo:smtp.youremailprovider.com "U:YOUR_USERNAME" "P:YOUR_API_KEY"

ไม่จำเป็นต้องกำหนดประเภทการตรวจสอบสิทธิ์ เนื่องจาก Sendmail จะเลือกวิธีการที่ปลอดภัยที่สุดเป็นอันดับแรกเสมอ ซึ่งเราจะกำหนดในภายหลังว่าเป็น STARTLS.

กำหนดค่า Sendmail ให้ใช้ผู้ให้บริการ SMTP ของคุณ

เปิดไฟล์การตั้งค่า Sendmail ที่ตั้งอยู่ที่ /etc/mail/sendmail.mc. ก่อนอื่นให้แก้ไขบรรทัดต่อไปนี้เพื่อตั้งค่าโดเมนที่คุณต้องการใช้สำหรับอีเมลขาออก โดยแทนที่ yourdomain.com ด้วยโดเมนจริงของคุณ:

Ubuntu 20.04

MASQUERADE_AS(`yourdomain.com')dnl

Ubuntu 24.04

ในเวอร์ชันใหม่กว่า Sendmail ได้ลบการตั้งค่าการปลอมแปลงที่อยู่ทั้งหมด ดังนั้นคุณจำเป็นต้องเพิ่มการตั้งค่าที่จำเป็นทั้งหมด เช่นต่อไปนี้:

MASQUERADE_AS(`yourdomain.com')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl

จากนั้น (ในเวอร์ชันใดก็ได้) ให้เพิ่มบรรทัดต่อไปนี้เพื่อกำหนดค่า Sendmail ให้ใช้ผู้ให้บริการของคุณเป็น SMTP relay โดยวางไว้ถัดจาก MAILER_DEFINITIONS, แทนที่ smtp.youremailprovider.com ด้วย URL SMTP ของผู้ให้บริการอีเมลธุรกรรมของคุณจริง:

define(`SMART_HOST',`[smtp.postmarkapp.com]')dnl
define(`RELAY_MAILER_ARGS', `TCP $h 587')dnl
define(`ESMTP_MAILER_ARGS', `TCP $h 587')dnl
define(`confAUTH_OPTIONS', `A p')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
กำหนด (`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl

สร้างไฟล์ฐานข้อมูล

หลังจากบันทึก ข้อมูลการอนุญาต ไฟล์, สร้างไฟล์ฐานข้อมูลที่ Sendmail จะใช้:

sudo makemap hash /etc/mail/authinfo < /etc/mail/authinfo

สร้างการกำหนดค่า Sendmail ใหม่

Sendmail จำเป็นต้องคอมไพล์แมโครทั้งหมดที่ต้องการใช้งาน รวมถึงแมโครในไฟล์ที่เราแก้ไขไปก่อนหน้านี้ด้วย หากมีข้อผิดพลาดทางไวยากรณ์ในโค้ด กระบวนการคอมไพล์จะล้มเหลว ดังนั้นให้ตรวจสอบหลายครั้งก่อนรันคำสั่ง:

sudo m4 /etc/mail/sendmail.mc | sudo tee /etc/mail/sendmail.cf

รีสตาร์ท Sendmail

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

sudo service sendmail reload

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

คุณสามารถทดสอบการตั้งค่า Sendmail ของคุณโดยการส่งอีเมลทดสอบ แต่ผู้ให้บริการบางรายอาจต้องการหัวเรื่องและเนื้อหาของอีเมลด้วย ดังนั้นเรามาสร้างไฟล์ชื่อ test_email.txt ด้วยเนื้อหาด้านล่างนี้:

หัวข้อ: การส่งอีเมลจากเทอร์มินัล

เนื้อหาอีเมล บรรทัดที่ 1
เนื้อหาอีเมล บรรทัดที่ 2

ตอนนี้ส่งอีเมลโดยใช้ไฟล์ของเราเป็นฐาน:

ส่งเมล re*******@*****le.com < test_email.txt

แทนที่ re*******@*****le.com ด้วยที่อยู่อีเมลของคุณจริง.

หน้านี้มีประโยชน์หรือไม่?

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *