บทความนี้ถือว่าคุณจะใช้ 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 ด้วยที่อยู่อีเมลของคุณจริง.
ทรัพยากร:
- https://docs.wordops.net/how-to/setup-sendmail-with-sendgrid/
- https://postmarkapp.com/support/article/792-is-sendmail-configurable-through-postmark
- https://sourcedaddy.com/networking/modifying-sendmail-mc.html
- https://stackoverflow.com/questions/57410259/how-to-send-an-email-using-sendmail-command-in-linux
ใส่ความเห็น