Postfix:基于别名的 SMTP 中继(来自地址)

Postfix:基于别名的 SMTP 中继(来自地址)

我最近注意到,当我向 Gmail 帐户添加别名时,他们会要求我提供远程 SMTP 服务器、用户名和密码。然后,每当我尝试使用该别名发送电子邮件时,Gmail 都会将其转发到提供的 SMTP 服务器。

有什么方法可以在 Postfix 安装上完成此设置吗?

需要澄清的是,在我的服务器上有一个虚拟用户[email protected](别名为:[email protected][email protected]),如果他发送一封电子邮件:

  • 使用from地址[email protected]=>的服务器将进行默认投递;
  • 使用from地址[email protected]=> 服务器将使用smtp.xpto.com(具有适当的凭据)中继电子邮件;
  • 使用from地址[email protected]=> 服务器将使用smtp.corpx.com(具有适当的凭据)中继电子邮件;

理想情况下,如果我可以有一个 MySQL 表,其中包含外部别名(针对每个虚拟用户),其中包含外部 SMTP 服务器域、端口、用户名和密码,那就太好了。=> 这样,我可以设置一个小型 Web 界面,以便我的用户可以使用他们自己的所有外部别名...

谢谢。

答案1

我猜你可以通过调整sender_dependent_default_transport_mapssender_dependent_relayhost_mapsPostfix 参数来实现这一点。例如:

# /etc/postfix/main.cf
sender_dependent_default_transport_maps = hash:/etc/postfix/sender_maps.cf
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sender_credentials.cf
smtp_sasl_tls_security_options = noanonymous
smtp_sender_dependent_authentication = yes
smtp_tls_security_level = may

# /etc/postfix/sender_maps.cf
[email protected] smtp:[smtp.xpto.com]:587
[email protected] smtp:[smtp.corpx.com]

# /etc/postfix/sender_credentials.cf
[email protected] xptouser:xptopassword
[email protected] corpxuser:corpxpassword

本示例使用静态哈希表。如果您的 Postfix 安装支持mysql_表(5),您可以改用 MySQL 查询。

我现在无法测试这个解决方案。我希望它能起作用。

相关内容