使用 TLS 和普通身份验证将电子邮件发送到 Gmail 的 SMTP 服务器

发布于 2024-11-26 10:19:11 字数 797 浏览 2 评论 0原文

我有一个情况。我想连接到 gmail smtp 服务器并从我的 gmail 帐户发送电子邮件。因为 gmail smtp 服务器使用 PLAIN 身份验证和 TLS。我连接到 gmail smtp 服务器。服务器响应如下。

220 mx.google.com ESMTP n21sm810716wed.43

然后我发送“AUTH PLAIN”并发送“EHLO”命令。服务器响应如下:

503 5.5.1 首先是 EHLO/HELO。 n21sm810716星期三.43

然后我再次向它发送“EHLO”命令,响应是:

250-mx.google.com 竭诚为您服务,[203.99.179.10]

在此之后我给它任何东西。它打印一系列行和退出。它给出的响应顺序是:

250-尺寸 35882577

250-8BITMIME

250-STARTTLS

250 个增强状态代码

我应该给它什么才能让我登录并向我发送电子邮件?任何帮助或建议将不胜感激。谢谢

另请参阅

使用 SMTP、Gmail 和 STARTTLS

I have a situation. I want to connect to gmail smtp server and send Email from my gmail account. as gmail smtp server uses PLAIN authentication and TLS. I connect to gmail smtp server. and server response is as follow.

220 mx.google.com ESMTP n21sm810716wed.43

then I send it "AUTH PLAIN" and send "EHLO" command. The server responses are as follow:

503 5.5.1 EHLO/HELO first. n21sm810716wed.43

I then sent it "EHLO" command again and response is:

250-mx.google.com at your service, [203.99.179.10]

after this whatever I give it. It prints a sequence of line and Exit. The sequence of responses which it gives are;

250-SIZE 35882577

250-8BITMIME

250-STARTTLS

250 ENHANCEDSTATUSCODES

what should I give it so that it let me login and send me Email? Any help or suggestion will be appreciated. Thanks

See also

Using SMTP, Gmail, and STARTTLS

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

小草泠泠 2024-12-03 10:19:11

您面临 3 个问题:

首先,您没有阅读 EHLO 命令的完整响应

此命令具有多行响应:

250-mx.google.com at your service, [203.99.179.10] 
250-SIZE 35882577 
250-8BITMIME 
250-STARTTLS 
250 ENHANCEDSTATUSCODES

请注意最后 250 代码后面的空格 - 这意味着这是最后一个响应行。

第二:
EHLO 应该是您发送的第一个命令。

第三:
Gmail 不允许在不使用 SSL 的情况下登录,无论是隐式(在 465 端口上)还是显式(STARTTLS 命令)

You are facing 3 problems:

First, you are not reading entire response of EHLO command.

This command has multi-line response:

250-mx.google.com at your service, [203.99.179.10] 
250-SIZE 35882577 
250-8BITMIME 
250-STARTTLS 
250 ENHANCEDSTATUSCODES

Note the space after last 250 code - it means that this is the last response line.

Second:
EHLO should be the first command you send.

Third:
Gmail does not allow to log-in without using SSL, either implicit (on 465 port) or explicit (STARTTLS command)

空城之時有危險 2024-12-03 10:19:11

除非我们与服务器有安全连接,否则我们无法使用 STARTTLS。简单的 SMTP 库和 telnet 不支持 STARTTLS。为此,我必须使用 GNUTLS,它与服务器执行握手并交换证书以建立安全连接。之后我发送 STARTTLS 并且工作正常。希望这可以帮助其他面临类似问题的人。谢谢

We can not use STARTTLS unless we have a secure connection with the server. simple SMTP library and telnet do not support STARTTLS. For this I had to use GNUTLS which performs handshaking with the server and exchange certificate to establish a secure connection. After that I send STARTTLS and it works fine. Hope this helps other facing similar problem. Thanks

雨夜星沙 2024-12-03 10:19:11

您应该在给定响应后发出 STARTTLS 命令。以下是一个 SMTP 对话示例,是通过端口 587 上的 smtp.gmail.com 上的 netcat 获得的:

220 mx.google.com ESMTP z83sm46627weq.20
EHLO localhost
250-mx.google.com at your service, [109.114.60.32]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
STARTTLS
220 2.0.0 Ready to start TLS

You should issue the STARTTLS command after the given response. Here is an SMTP conversation example, obtained with netcat on smtp.gmail.com on port 587:

220 mx.google.com ESMTP z83sm46627weq.20
EHLO localhost
250-mx.google.com at your service, [109.114.60.32]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250 ENHANCEDSTATUSCODES
STARTTLS
220 2.0.0 Ready to start TLS
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文