使用 SASLDB 通过 SASL2 设置 SMTP-AUTH 以便用户发送电子邮件

使用 SASLDB 通过 SASL2 设置 SMTP-AUTH 以便用户发送电子邮件

你好,

过去几天,我一直在尝试使用 SASLDB 设置 Postfix,以便通过 Ubuntu Server 15.04 上的 SMTP 从我的应用程序发送电子邮件。我搜索、阅读并测试了很多相关内容,但还是无法让它正常工作。Postfix 和邮件服务器对我来说很新,所以我希望有人能帮助我。

我最后尝试的是以下操作:

  1. 已全新安装 Ubuntu Server 15.04 x64。

  2. 运行此脚本来安装并配置 Postfix、SASL AUTH: https://gist.github.com/richarddong/2634350

  3. 通过以下方法修复 SASLAUTHD 以与 chrooted Postfix 配合使用(第 3 和第 4 段): https://github.com/webmin/webmin/issues/58#issuecomment-22985720

    修理connect() :没有该文件或目录错误测试命令。

  4. 我创建了一个用户saslpasswd2 -c -u example.com username

    使用 验证成功sasldblistusers2,然后使用以下方法进行测试:

    • testsaslauthd -u [email protected] -p password

    • testsaslauthd -u username -p password -r example.com

    • testsaslauthd -u [email protected] -p password -s smtp

    • testsaslauthd -u username -p password -r example.com -s smtp

    • testsaslauthd -u username -p password

    但所有这些都返回了:0:没有“认证失败”

    它只接受了用户和密码,如testsaslauthd -u root -p password

  5. 我检查了配置,发现它没有使用 SASLDB,因此我按照以下步骤操作: https://serverfault.com/a/547851/317421

    SASL、Postfix 配置之后的结果和我上面写的一样。

    我尝试使用 root 用户telnet localhost 25,连接,然后AUTH PLAIN base64string,其中 base64string 生成自:

    perl -MMIME::Base64 -e 'print encode_base64("\000root\000password");'

    但回来了535 5.7.8 Error: authentication failed: generic failure

这就是我现在所在的地方。

当然,我在这些步骤之间重新启动了 Postfix 和 SASLAUTHD。

我也尝试过重新启动系统但没有任何改变。

如果有人能好心地帮助我设置这个或者得到一个脚本那就太好了!

答案1

如果有人遇到同样的错误,这可能会节省您数小时的搜索时间。

为了使用 sasldb,您需要将文件中的MECHANISMS="pam"行更改为,这是我所忽略的。MECHANISMS="sasldb"/etc/default/saslauthd

然后重新启动 saslauthd 和 postfix,它就可以按照上面的配置工作了。

相关内容