因此,我试图弄清楚这如何与人们如何发送凭据以通过 smtp 进行身份验证和发送邮件相关联。使用典型的默认设置 postfix 和 dovecot(例如http://wiki.dovecot.org/HowTo/PostfixAndDovecotSASL),我理解的对吗?这将根据 /etc/passwd 或类似文件对用户进行身份验证?因此,创建用户的过程是什么?还是只是通过 useradd/adduser 完成?(这意味着用户名与电子邮件别名没有直接关联,任何将别名转发到邮箱位置的操作都必须以某种方式成功链接到用户名)。
我也遇到了这样的问题:即使我设置了一个 unix 帐户,我也无法与服务器建立 SMTP 连接并成功验证以发送电子邮件(尝试通过 telnet)。那么可能存在什么限制呢?我知道 postfix 有一个受信任的中继节点的概念(使用变量“mynetworks”),所以我发送邮件的地方不需要在那里,对吧?(否则进行验证几乎没有意义,因为“mynetworks”为您提供了完全的中继访问权限)。
抱歉我没有解释清楚,但是 Postfix/Dovecot 文档有点难读。
答案1
好的,在 dovecot.conf 文件中,以下部分是设置您的身份验证以使用 Linux PAM 和 /etc/passwd 文件作为身份验证源的地方。如果您想使用其他东西,则需要对 PAM 进行一些配置。/etc/pam.d 中的某些模块可能会有所帮助:
passdb pam {
}
userdb passwd {
}
在当前配置下添加用户确实可以通过“useradd”正常完成。您的别名可以在 /etc/aliases 中配置(更新后不要忘记运行“newaliases”),或者在 /etc/postfix/virtual 中以以下格式配置:[电子邮件保护]'[tab]'localuser'(更新后不要忘记运行'postmap /etc/postfix/virtual'。)
至于无法连接,我假设您指的是远程连接。如果您无法本地连接到端口 25,则 postfix 可能未运行。如果您无法远程连接,则 postfix 可能仅在环回接口上监听。在这种情况下,编辑 /etc/postfix/main.cf 并将“inet_interfaces”指令更改为“inet_interfaces = all”,然后重新启动 postfix。这将使其监听所有接口。出于测试目的,请以 root 身份使用“/sbin/iptables -F”刷新 iptables 过滤规则。
答案2
您说得对。身份验证是通过 PAM(可插入身份验证模块)提供的,它会在 /etc/passwd(/etc/shadow)中“查找”用户。您可以按照您说的通过 adduser 创建用户。如果您想要别名,您可以使用 /etc/aliases,然后运行“newaliases”命令来使其工作。
您的 /etc/postfix/main.cf 文件的配置是什么?如果您愿意,您可以发布它,避免粘贴文件的注释。请注意,“mynetworks”需要一个 IP 地址或允许连接的网络范围。