Postfix - 中继 - Mysql 中的身份验证

Postfix - 中继 - Mysql 中的身份验证

我尝试使用 Postfix 服务器进行管理,我的目标是:

当 1 名特殊用户 ([电子邮件保护]) 尝试发送邮件,它将使用路由(使用中继服务器是可以的),但我不明白如何向中继服务器发送身份验证以获得发送邮件的授权。我在 main.cf 文件中执行此操作:

relay_domains =
$mydestination
proxy:mysql:/etc/postfix/mysql/relay_domains.cf

relay_recipient_maps =
    mysql:/etc/postfix/mysql/relay_recipient_maps.cf

第一点没问题:我看到邮件使用我的 mysql 表中指定的中继来发送邮件。第二点有问题:我认为用户/密码未发送到中继,因此我的邮件被拒绝。文件 /etc/postfix/mysql/relay_recipient_maps.cf 内容为:

hosts       = 127.0.0.1:3306
user        = BDD_USER
password    = BDD_PASS
dbname      = BDD_DBNAME
query       = SELECT authentification FROM domain WHERE domain='%s' LIMIT 1

在 MySQL 中,“身份验证”字段包含用户:密码,用于纯文本中继身份验证

祝您有个愉快的一天!

答案1

为了在 Postfix 中与中继服务器进行身份验证,您需要smtp_sasl_auth_enablemain.cf文件中配置参数。

  1. 打开main.cfPostfix 的配置文件。
  2. 添加或修改以下参数:
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
  1. 创建一个sasl_passwd文件并指定中继服务器的主机名或 IP 地址以及身份验证凭据:
relay.example.com    username:password
  1. 从文件生成哈希映射文件sasl_passwd
sudo postmap /etc/postfix/sasl_passwd
  1. 为文件设置正确的权限sasl_passwd.db
sudo chown root:root /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd.db
  1. 重新启动 postfix:
sudo service postfix restart

通过配置smtp_sasl_auth_enable参数并在文件中提供身份验证详细信息sasl_passwd,Postfix 将在发送电子邮件时使用这些凭据与中继服务器进行身份验证。

相关内容