Postal เป็นเซิร์ฟเวอร์อีเมลที่โฮสต์โดยตนเองซึ่งมุ่งเน้นไปที่อีเมลขาออกและสามารถใช้กับจดหมายข่าวและอื่น ๆ ได้ มันอาจเปรียบเทียบกับ SendGrid ได้
ก่อนที่เราจะเริ่มต้นควรได้รับการกล่าวถึงว่าการติดตั้งไปรษณีย์ในการตั้งค่าที่มีอยู่มักจะขัดแย้งกับซอฟต์แวร์อื่น ดังนั้นคุณควรติดตั้งไปรษณีย์บนอินสแตนซ์ของเมฆที่ว่างเปล่าและแยกจากกัน
หมุนอินสแตนซ์คลาวด์ Ubuntu 16.04 ใหม่บน Vultr ล็อกอินเข้าสู่เซิร์ฟเวอร์ในฐานะผู้ใช้และทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1: การติดตั้งไปรษณีย์
ไปรษณีย์มีสคริปต์ตัวติดตั้งที่ใช้งานง่าย ใช้คำสั่งเดียวเท่านั้น โปรดทราบว่าการติดตั้งจากสคริปต์ไม่สมบูรณ์ต้องใช้ขั้นตอนเพิ่มเติ��
ดำเนินการ:
curl https://raw.githubusercontent.com/atech/postal/master/script/install/ubuntu1604.sh | sh
หลังจ��กการติดตั้งเสร็จสิ้นเราจำเป็นต้องสร้างผู้ใช้ใหม่ ดำเนินการ:
postal make-user
คำสั่งนี้ต้องการอินพุตของผู้ใช้เพื่อพิจารณาอีเมลแอดเดรสชื่อและคุณสมบัติผู้ใช้อื่น ๆ ป้อนข้อมูลนี้เพื่อสร้างผู้ใช้ โปรดทราบว่าคำสั่งนี้จะสร้างผู้ใช้ที่เป็นผู้ดูแลระบบดังนั้นหากคุณไม่ต้องการให้ผู้ใช้มีสิทธิ์ของผู้ดูแลระบบคุณไม่ควรสร้างบัญชีของพวกเขาผ่านคำสั่งนี้
จากนั้นไปที่ที่อยู่ IP ของเซิร์ฟเวอร์หรือการจับคู่ DNS ไปยังที่อยู่ IP ในเบราว์เซอร์ของคุณเพื่อลงชื่อเข้าใช้ คุณอาจเห็นคำเตือนใบรับรอง SSL แต่เราสามารถเพิกเฉยได้ว่าตอนนี้เนื่องจากไปรษณีย์ใช้ใบรับรองที่ลงชื่อด้วยตนเองโดยค่าเริ่มต้น
พยายามลงชื่อเข้าใช้เว็บอินเตอร์เฟส หากใช้งานได้ให้ดำเนินการในขั้นตอนต่อไป
ขั้นตอนที่ 2: แทนที่ใบรับรอง SSL (ตัวเลือก)
เช่นเดียวกับที่ระบุไว้ไปรษณีย์ใช้ใบรับรองที่ลงนามด้วยตนเองตามค่าเริ่มต้น แม้ว่าจะไม่จำเป็น แต่ก็เป็นความคิดที่ดีที่จะแทนที่ใบรับรองนี้ด้วย Let's Encrypt โดยเฉพาะอย่างยิ่งหากคนอื่นจะใช้เว็บอินเตอร์เฟสก็อาจเจอแปลก ๆ หากมีข้อผิดพลาดของใบรับรอง
นอกจากนี้ Let's Encrypt จำเป็นสำหรับการทำงานของโดเมนการติดตาม
ดำเนินการ:
postal register-lets-encrypt example@ example.com
ขั้นตอนที่ 3: ตั้งค่าการตั้งค่าโดเมน
ควรเพิ่มระเบียน DNS บางรายการเพื่อป้องกันไม่ให้อีเมลถูกตั้งค่าสถานะเป็นสแปม เปิดไฟล์/opt/postal/config/postal.yml
และไปที่dns
ส่วนซึ่งควรมีลักษณะดังนี้:
dns:
# Specifies the DNS record that you have configured. Refer to the documentation at
# https://github.com/atech/postal/wiki/Domains-&-DNS-Configuration for further
# information about these.
mx_records:
- mx.example.com
smtp_server_hostname: postal.example.com
spf_include: spf.example.com
return_path: rp.postal.example.com
route_domain: routes.postal.example.com
track_domain: track.postal.example.com
*.postal.example.com
ควรสร้างระเบียน DNS สำหรับเพื่อให้ไปรษณีย์ทำงานอย่างถูกต้อง
นอกจากนี้คุณควรสร้างระเบียน SPF ที่ "รวมได้" โดยชื่อโดเมนอื่น ( spf.example.com
) การตั้งค่าที่ระบุที่นี่จะปรากฏต่อผู้ใช้เมื่อมีการสร้างชื่อโดเมนใหม่ การไปรษณีย์มีฟังก์ชันในตัวซึ่งจะตรวจสอบว่าได้เพิ่มระเบียน DNS ทั้งหมดที่ระบุข้างต้นในชื่อโดเมนหรือไม่
นอกเหนือจากนี้บันทึก DKIM จะถูกแสดงเมื่อสร้างเช่นกัน เนื่องจากระเบียน DKIM มีลักษณะเฉพาะตามธรรมชาติจึงจะไม่แสดงที่นี่
เปลี่ยนค่าเหล่านี้เพื่อสะท้อนการตั้งค่าที่ถูกต้อง
ขั้นตอนที่ 4: เปิดใช้งานอีเมลผ่าน SSL
แม้ว่าขั้นตอนนี้จะเป็นทางเลือก แต่คุณควรพิจารณาปัญหาที่เกี่ยวข้องกับความปลอดภัยอย่างแน่นอนหากคุณไม่ได้เปิดใช้งานการเข้ารหัส ฉันแนะนำให้เปิดใช้งาน (START) TLS
โดยค่าเริ่มต้นเซิร์ฟเวอร์อีเมลที่ปรับใช้พร้อมกับการไปรษณีย์ไม่รองรับ SSL ไม่มีฟังก์ชั่นพื้นฐานสำหรับการเปิดใช้งานเซิร์ฟเวอร์อีเมลที่มีความเข้ากันได้กับ SSL / TLS บนพอร์ต 465 หรือ 587
อย่างไรก็ตามเป็นไปได้ที่จะกำหนดค่าพอร์ต 25 เพื่อรองรับ STARTTLS ซึ่งอนุญาตให้เข้ารหัสได้เช่นกัน เพื่อเปิดใช้งานสิ่งนี้เพิ่มบล็อกต่อไปนี้ไปยังไฟล์การกำหนดค่า ( /opt/postal/config/postal.yml
):
smtp_server:
tls_enabled: true
tls_certificate_path: config/fast_server.cert
tls_private_key_path: config/fast_server.key
ในกรณีที่บล็อกนี้มีอยู่แล้วคุณจะต้องการเปรียบเทียบเนื้อหาของพวกเขาและรวมเข้าด้วยกันการพิจารณาบล็อกที่ซ้ำกันอาจนำไปสู่ความขัดแย้ง
บันทึกการเปลี่ยนแปลงและเริ่มการไปรษณีย์ใหม่:
postal restart
ต่อไปเราจะตั้งค่าเซสชัน telnet เพื่อตรวจสอบว่าการเปลี่ยนแปลงของเรามีผลหรือไม่และเปิดใช้งาน STARTTLS แล้ว แทนที่0.0.0.0
ด้วยที่อยู่ IP ของ Vultr cloud ของอินสแตนซ์
server$ telnet 0.0.0.0 25
Trying 0.0.0.0...
Connected to postal.example.com.
Escape character is '^]'.
220 postal.example.com ESMTP Postal/NYNI5I
ทักทายเซิร์ฟเวอร์อีเมล แทนที่postal.example.com
ด้วยชื่อเซิร์ฟเวอร์อีเมลของคุณ นี่ควรเป็นค่าหลังจาก "เชื่อมต่อกับ"
ehlo postal.example.com
เอาต์พุตต่อไปนี้จะถูกส่งคืนหลังจาก:
250-My capabilities are
250-STARTTLS
250 AUTH CRAM-MD5 PLAIN LOGIN
อย่างที่คุณเห็น250-STARTTLS
ถูกส่งคืนดังนั้นเมลเซิร์ฟเวอร์จึงรองรับ STARTTLS ที่พอร์ต 25
ขั้นตอนที่ 5: เปิดใช้งานการตรวจสอบสแปมและไวรัสโดยใช้ SpamAssassin
ไปรษณีย์ทำงานร่วมกับ SpamAssassin และ ClamAV เพื่อดูแลการตรวจสอบสแปมและไวรัสทั้งขาเข้าและขาออก ฟังก์ชันการทำงานถูกปิดใช้งานตามค่าเริ่มต้นเนื่องจากเซิร์ฟเวอร์อีเมลบางตัวไม่ต้องการสิ่งนี้ แต่ฉันขอแนะนำให้เปิดใช้งานในกรณีส่วนใหญ่
ก่อนอื่นให้ติดตั้ง SpamAssassin ไม่จำเป็นต้องเพิ่มที่เก็บสำรอง:
apt-get install spamassassin
เปิดไฟล์กำหนดค่า SpamAssassin /etc/default/spamassassin
และแก้ไขค่าต่อไปนี้:
ENABLED=1
CRON=1
ถัดไปรีสตาร์ท SpamAssassin เพื่อให้การเปลี่ยนแปลงมีผล:
systemctl restart spamassassin
มีการติดตั้ง SpamAssassin แล้ว แต่การส่งไปรษณีย์ไม่ได้ส่งอีเมลใด ๆ เพิ่มบล็อกต่อไปนี้ในpostal.yml
ไฟล์กำหนดค่า:
spamd:
enabled: true
host: 127.0.0.1
port: 783
ในที่สุดรีสตาร์ทการไปรษณีย์:
postal restart
ขณะนี้มีการกำหนดค่าการส่งไปรษณีย์เพื่อใช้ SpamAssassin และ ClamAV สำหรับข้อความอีเมลขาเข้าและขาออก คุณสามารถระบุวิธีจัดการกับอีเมลว่าเป็นสแปมต่อเส้นทาง (ทำเครื่องหมายกักกันหรือล้มเหลว)
ตอนนี้คุณมีเซิร์ฟเวอร์ไปรษณีย์ที่ทำงานได้อย่างสมบูรณ์ สำหรับการตั้งค่าที่เกี่ยวข้องกับการกำหนดค่าเมล (เซิร์ฟเวอร์) คุณควรดูในส่วนต่อประสานไปรษณีย์
สรุปว่ากวดวิชาไปรษณีย์ของฉันขอขอบคุณ