我阅读了使用带有 Postfix 2.6.6的中继主机。可以为不同的发件人使用具有不同凭据的不同中继主机。但是我如何使用特定发件人的直接递送(在这种情况下,只有一个发件人),而所有其他邮件都通过单个中继主机/凭据(在这种情况下,Sendgrid)发送。
背景:所有邮件都是事务性的,由运行 Postfix 的 LAMP 服务器上不同域上的 Web 应用程序生成。这些域中的任何一个都没有 MX 记录指向该服务器(它们主要是谷歌应用程序)。除一个以外的所有域都成功使用了sendmail>postfix>sendgrid>remote SMTP路由。这个域/应用程序需要直接发送(sendmail>postfix>remote SMTP)以实现更好的传递跟踪。我不想通过SwiftMailer本身使用直接传递,因为它会在应用程序的邮件处理中引入延迟。我希望 SwiftMailer 使用Swift_SendmailTransport
并通过 Postfix 传递,然后我们将梳理 Postfix 日志以查找传递失败。
您可以使用relayhost配置参数设置默认中继主机,然后使用sender_dependent_relayhost_maps配置参数覆盖每个发件人。请注意,最后一个是查找表。
最后,您需要设置smtp_sasl_password_maps以配置每个中继主机的 smtp 凭据。请记住,您可能需要启用 smtp sasl 身份验证:smtp_sasl_auth_enable =yes。您可能需要配置其他 smtp 参数(可能是 stmp_tls_* 等)。