我正在寻找一个基于 Linux 的 SMTP 服务器。我已经阅读了有关 Postfix SASL 和 Dovecot 的教程和规范,但我找不到如何配置允许通过 SMTP 服务器发送电子邮件的用户名和密码列表 ( smtpd
)。
换句话说:
- 我应该在哪个文件中添加允许发送电子邮件的每个客户端的用户名和密码?
- 我应该指定哪种格式的用户名?用户名应该包含
@
,例如 ,[email protected]
还是不包含@
,例如username
。
这些是我搜索的来源:
我正在寻找一个基于 Linux 的 SMTP 服务器。我已经阅读了有关 Postfix SASL 和 Dovecot 的教程和规范,但我找不到如何配置允许通过 SMTP 服务器发送电子邮件的用户名和密码列表 ( smtpd
)。
换句话说:
@
,例如 ,[email protected]
还是不包含@
,例如username
。这些是我搜索的来源:
根据 @nikita-kipriyanov 的评论(这帮助我专注于 SASL Dovecot),我成功地使用 Postfix 和 Dovecot SASL 建立了 SMTP 服务器。
这大约是我所做的:
我意识到我应该关注 Dovecot 并理解它无法验证的原因。
我发现 Dovecot 文件位于 path
/etc/dovecot
。我在这里阅读了有关 Dovecot SASL 日志记录的信息:
https://doc.dovecot.org/admin_manual/logging/
然后我更改了文件中的 Dovecot 日志记录配置,
/etc/dovecot/conf.d/10-logging.conf
以便日志文件位于 path/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
,并为其应用了一个密码,该密码与电子邮件密码相同。然后,验证成功并收到电子邮件。