rails 应用程序正在向 postfix 发送电子邮件进行处理并From: do-not-reply@some_domain.top
返回错误:
[ActionMailer::MailDeliveryJob] [fa3df6b5-72a4-4a57-a5f8-ef7a98e4d8a9]
Error performing ActionMailer::MailDeliveryJob (Job ID: fa3df6b5-72a4-4a57-a5f8-ef7a98e4d8a9)
from GoodJob(default) in 2613.2ms:
Net::SMTPFatalError (551 5.7.1 Not authorised to send from this header address
因此/etc/postfix/main.cf
需要适当的设置。目前:
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
append_dot_mydomain = no
readme_directory = no
compatibility_level = 2
# TLS parameters
smtpd_tls_cert_file=/etc/letsencrypt/live/sandbox.domain.club/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/sandbox.domain.club/privkey.pem
smtpd_tls_security_level=may
smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = sandbox.domain.club
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = localhost.$myhostname, localhost, $myhostname
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
案例的众多使得对文献和/或参考文献的理解变得复杂。
目前有两个问题。
- 有多个拥有自己域名的发行者(均受 SPF、DKIM 和 DMARC 保护)
- 这些域名上颁发了多个证书。说实话,即使现有的引用也是错误的,因为 letsencrypt 已经重写了证书,
sandbox.domain.club-0001
但这很容易修复
如何将 Postfix 配置为使用来自域的,例如some_domain.top, sandbox.domain.club, twirlingaround.com
?
*注:此处指出的可能途径已尝试,但是由于先前的绑定,postfix 服务器无法启动,我推测这是因为中127.0.0.1
的设置不同造成的。main.cf
inet_interfaces
答案1
这个问题和后缀关系不大,因为只有
masquerade_domains = some_domain.top sandbox.domain.club twirlingaround.com
被添加作为一项安全措施。
问题出在 rails 配置上。该config/environment/[acting_environment].rb
文件需要设置为:
config.action_mailer.delivery_method = :sendmail
config.action_mailer.smtp_settings = {
openssl_verify_mode: 'none'
}