从 netcat 或 openssl s_client 向 Gmail 地址发送电子邮件时,为什么尽管凭证正确,仍会收到“用户名和密码不被接受”的信息

从 netcat 或 openssl s_client 向 Gmail 地址发送电子邮件时,为什么尽管凭证正确,仍会收到“用户名和密码不被接受”的信息

我的目标是向 gmail 地址发送电子邮件,例如[email protected]通过 netcat 或 telnet 等命令行工具。

我尝试过:

我首先尝试了 netcat。

nc -C smtp.gmail.com 587
220 smtp.gmail.com ESMTP l35sm2846203wms.40 - gsmtp
EHLO smtp.gmail.com
250-smtp.gmail.com at your service, [101.50.65.95]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8

MAIL FROM:[email protected]

530 5.7.0 Must issue a STARTTLS command first. l35sm2846203wms.40 - gsmtp

STARTTLS
220 2.0.0 Ready to start TLS

MAIL FROM:[email protected]

然后会话将自动关闭。在上面的代码片段中[email protected]我的真实 Gmail 电子邮件地址(当然改成了alpha网上发帖)。当我在网上搜索这件事时,我发现每个人都在说netcat或者telnet无法使用,而是openssl s_client将被使用。

然后我开始关注教程用来openssl s_client执行此操作。尽管用户名和密码正确,并且我可以从 Web 浏览器登录,但还是发生了这种情况。

openssl s_client -connect smtp.gmail.com:465 -crlf 
CONNECTED(00000003)
...
    Start Time: 1630494318
    Timeout   : 7200 (sec)
    Verify return code: 0 (ok)
    Extended master secret: no
    Max Early Data: 0
---
read R BLOCK
220 smtp.gmail.com ESMTP z137sm5722297wmc.14 - gsmtp
ehlo smtp.gmail.com
250-smtp.gmail.com at your service, [101.50.65.95]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
auth login
334 VXNlcm5hbWU6 #########################################ASKING FOR BASE64 ENCODED USERNAME. I ENTER MY REAL (BASE64 ENCODED) GMAIL EMAIL ADDRESS [email protected] HERE. 
******************************
334 UGFzc3dvcmQ6 #########################################ASKING FOR BASE64 ENCODED PASSWORD. I ENTER (BASE64 ENCODED) PASSWORD OF MY GMAIL EMAIL GIVEN ABOVE. 
*****************
535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials z137sm5722297wmc.14 - gsmtp

问题: 为什么会发生这种情况?我该如何解决?

答案1

尝试

openssl s_client -ign_eof  -connect smtp.gmail.com:465 -crlf

命令-ign_eof行参数很有帮助。

相关内容