我正在寻找基于 Linux 的 SMTP 服务器。我已阅读有关 Postfix SASL 与 Dovecot 的教程和规范,但我找不到如何配置允许通过 SMTP 服务器发送电子邮件的用户名和密码列表 ( smtpd
)。
换句话说:
- 我应该在哪个文件中添加每个允许发送电子邮件的客户端的用户名和密码?
- 我应该以哪种格式指定用户名?用户名是否应包含
@
,例如 ,[email protected]
或者是否不包含@
,例如username
。
这些是我搜索过的资料来源:
答案1
根据@nikita-kipriyanov 的评论(它帮助我专注于 SASL Dovecot),我成功地使用 Postfix 和 Dovecot SASL 建立了一个 SMTP 服务器。
这大概就是我所做的:
我意识到我应该关注 Dovecot 并了解它为什么无法验证。
我发现 Dovecot 文件位于路径/etc/dovecot
。
我在这里读过有关 Dovecot SASL 日志记录的内容:
https://doc.dovecot.org/admin_manual/logging/
然后我修改了文件中的 Dovecot 日志配置,/etc/dovecot/conf.d/10-logging.conf
使得日志文件位于路径/var/log/dovecot.log
。此外,我使日志记录更加详细(启用了 6 个配置变量)。
然后,我从 Dovecot 日志文件中了解到身份验证机制是 PAM,这是操作系统中的标准用户身份验证机制。此外,dovecot SASL 使用“passdb”作为密码数据库 - 请参阅此处:
https://doc.dovecot.org/configuration_manual/authentication/password_databases_passdb/
可以看出,密码数据库还支持 PAM 等。
我还注意到,在 dovecot 日志文件中,此 PAM 模块的用户名是电子邮件地址之前的字符串@
。例如,如果电子邮件地址是[email protected]
,则 PAM 的用户名是bar
。因此,我在基于 Linux 的操作系统中添加了一个用户,该用户被调用bar
并为其应用了与电子邮件密码相同的密码。
然后,认证成功,收到电子邮件。