在终端中通过 openssl 连接到邮件服务器时出现身份验证错误

在终端中通过 openssl 连接到邮件服务器时出现身份验证错误

我已经使用 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")'

相关内容