我已经使用 Postfix 和 Dovecot 设置了一个电子邮件服务器,并且能够使用各种邮件客户端发送和接收邮件,但是由于某种原因,当我尝试通过openssl
终端连接时出现身份验证错误。
事情的经过大致如下:
openssl s_client -connect mail.example.com:587 -starttls smtp
[已建立与服务器的连接]
EHLO mail.example.com
AUTH PLAIN cGFzc3dvcmQ=
535 5.7.8 Error: authentication failed:
我曾使用下列每种方法来生成我的AUTH PLAIN
消息,但均未能验证我的身份:
echo -en '\0username\0password!'|base64
echo -en '\000username\000password!'|base64
echo -e '\0username\0password!'|base64
echo -e '\000username\000password!'|base64
我用来设置邮件服务器的教程建议我使用:
echo -en '\000username\000password!'|base64
但这对我来说从来没用过。
我的用户名是这种格式的[email protected]
,当使用邮件客户端连接到服务器时它可以工作。
有人知道我为什么会收到错误吗?我假设这是因为我没有正确生成 base64 身份验证消息,但我对 Linux 还不熟悉,所以我可能会忽略一些简单的事情。
我严格按照教程操作,并多次检查设置。除了这个问题,其他一切都按预期运行。
服务器运行的是 Debian 7(64 位),教程在这里:https://www.howtoforge.com/tutorial/build-your-own-cloud-on-debian-wheezy/
谢谢。
答案1
大多数设置都将域名包含在用户名中。(至少我的大部分设置都是如此。)请尝试:
echo -ne '\[email protected]\0password!'|base64
您还可以尝试 PERL 方法:
perl -MMIME::Base64 -e 'print encode_base64("\000user\@domain.com\000password")'