เมื่อฉันดำเนินการ postfix บรรทัดต่อไปนี้ใช้เซิร์ฟเวอร์ส่งต่อ sendgrid ของฉัน
echo "เรื่อง: sendmail test" | sendmail -v [email protected]
แต่เมื่อฉันเรียกใช้ฟังก์ชัน sendmail ผ่านสคริปต์ PHP มันจะไม่ส่งไปยังเซิร์ฟเวอร์รีเลย์ ดูเหมือนว่ามันต้องการที่จะแจกจ่ายมันในพื้นที่
ความคิดใด ๆ เกี่ยวกับวิธีบังคับให้ postfix ใช้ตัวเลือก smtp relay
ดูเหมือนว่า postfix จะหมดเวลาใน STARTTLS ฉันได้เพิ่มบันทึกด้านล่าง อาจเป็นเพราะใบรับรอง LetsEncrypt ของฉันหรือไม่
postfix/smtpd[29268]: > localhost[::1]: 250-www.example.com
postfix/smtpd[29268]: > localhost[::1]: 250-PIPELINING
postfix/smtpd[29268]: > localhost[::1]: 250-SIZE 10240000
postfix/smtpd[29268]: > localhost[::1]: 250-VRFY
postfix/smtpd[29268]: > localhost[::1]: 250-ETRN
postfix/smtpd[29268]: > localhost[::1]: 250-STARTTLS
postfix/cleanup[29279]: 8E2B520B98: message-id=<[email protected]>
postfix/smtpd[29268]: smtp_get: EOF
โพสต์คอนเฟอเรนซ์ -n
alias_database = แฮช:/etc/aliases
alias_maps = แฮช:/etc/aliases
append_dot_mydomain = ไม่
บิฟ = ไม่
config_directory = /etc/postfix
header_size_limit = 4096000
inet_interfaces = ทั้งหมด
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$mydomain, localhost
โดเมนของฉัน = example.com
ชื่อโฮสต์ของฉัน = www.example.com
เครือข่ายของฉัน = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/ชื่อเมล
readme_directory = ไม่
ผู้รับ_ตัวคั่น = +
รีเลย์โฮสต์ = smtp.sendgrid.net:587
smtp_sasl_auth_enable = ใช่
smtp_sasl_password_maps = คงที่: apikey: BLBAABLAABLAA
smtp_sasl_security_options = ไม่ระบุตัวตน
smtp_sasl_tls_security_options = ไม่ระบุตัวตน
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
smtp_tls_security_level = เข้ารหัส
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname E
SMTP $mail_name (เดเบียน/GNU)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = ใช่
ดูเหมือนว่าจะทำงานได้อย่างสมบูรณ์เมื่อฉันเขียนสคริปต์ไพ ธ อน แต่ด้วย PHP swiftmailer ดูเหมือนว่าจะล้มเหลวและส่งคืน EOF
=============== อัพเดท
ดูเหมือนว่ารีเลย์จะทำงาน แต่ตอนนี้เราได้รับข้อผิดพลาดนี้
Swift_IoException [ 0 ]: การเชื่อมต่อกับ localhost:25 หมดเวลา
ฉันสามารถส่งเมลโดยใช้ sendmail ได้ แต่เมื่อ SwiftMailer ใช้ sendmail มันได้รับข้อผิดพลาดที่ระบุไว้ก่อนหน้านี้