如何通过手动 Telnet 会话检查 SMTP 连接

2020年2月7日

电子邮件

1 min read

如何通过手动 Telnet 会话检查 SMTP 连接

关键要点

    • Manual telnet testing 是一种快速、低技术的方法,用于诊断 SMTP 连接和配置问题。

    • 用它来验证一个 SMTP 服务器是否可达、配置正确,以及接受连接

    • 测试可以揭示端口被阻止、转发限制、DNS 错误,或 TLS 兼容性问题

    • 基本的 SMTP 命令包括EHLO/HELO、MAIL FROM、RCPT TO、DATA,以及 QUIT

    • 端口25是用于转发的标准端口,而465587用于安全提交。

    • 当服务器需要登陆凭证时,需要Base64-encoded authentication (AUTH LOGIN)

    • Swaks这样的工具或集成邮箱测试平台可以自动化并扩展 telnet 的诊断步骤。

Q&A 精华

  • 为什么使用telnet而不是专门的email测试工具?

    Telnet 为您提供直接查看原始 SMTP 对话的能力。这在协议层面进行故障排除以及在没有第三方层的情况下确认服务器响应时是无价的。

  • 最快的方法来判断我的SMTP端口是否被屏蔽是什么?

    运行 telnet mail.example.com 25。 如果你收到“连接被拒绝”,你的ISP或主机可能正在阻止该端口。

  • 我在使用telnet进行测试时需要进行身份验证吗?

    只有在邮件服务器需要验证时才使用。使用 AUTH LOGIN 命令,并以 Base64 编码发送您的用户名和密码。

  • 我可以通过telnet发送完整邮件吗?

    是的。 在DATA后,添加您的标头和正文,以单个句号(.)结束在自己的行上,然后键入 QUIT

  • 对于SMTP测试,telnet是否安全?

    不。Telnet以纯文本传输数据。仅在安全可控的环境中进行测试时使用。要实现安全连接,请使用支持STARTTLS的工具在TLS上进行测试。

在电子邮件的世界中,有很多方面需要测试,但您可以进行的最基本的测试之一就是简单地使用telnet进入给定的SMTP服务器。此SMTP检查可在确定是否存在最基本的问题时派上用场。

在电子邮件的世界中,有许多方面需要进行测试,但您可以进行的一项最基本的测试就是简单地telnet进入指定的SMTP服务器。  这个SMTP检查对于确定最基本的问题是否存在或不存在非常有用。

  • 服务器是否已启动?

  • 是否有防火墙阻止通信?

  • 邮件服务器是否允许中继特定域名/电子邮件地址?

  • 邮件服务器支持哪些SMTP命令?

  • 服务器是否响应正确的主机名?

  • 连接是否在任何第三方软件或API外部工作?

所有这些问题以及更多问题都可以通过一个简单的telnet测试来回答。

在我们开始之前,请务必在新选项卡中打开我们这篇文章的伴侣内容:退回消息发送到哪里?,以便在完成此博客后阅读。

注意,以下示例中使用的命令(以及其他命令)在 RFC 2821的第4.1节中有介绍。

在电子邮件的世界中,有许多方面需要进行测试,但您可以进行的一项最基本的测试就是简单地telnet进入指定的SMTP服务器。  这个SMTP检查对于确定最基本的问题是否存在或不存在非常有用。

  • 服务器是否已启动?

  • 是否有防火墙阻止通信?

  • 邮件服务器是否允许中继特定域名/电子邮件地址?

  • 邮件服务器支持哪些SMTP命令?

  • 服务器是否响应正确的主机名?

  • 连接是否在任何第三方软件或API外部工作?

所有这些问题以及更多问题都可以通过一个简单的telnet测试来回答。

在我们开始之前,请务必在新选项卡中打开我们这篇文章的伴侣内容:退回消息发送到哪里?,以便在完成此博客后阅读。

注意,以下示例中使用的命令(以及其他命令)在 RFC 2821的第4.1节中有介绍。

在电子邮件的世界中,有许多方面需要进行测试,但您可以进行的一项最基本的测试就是简单地telnet进入指定的SMTP服务器。  这个SMTP检查对于确定最基本的问题是否存在或不存在非常有用。

  • 服务器是否已启动?

  • 是否有防火墙阻止通信?

  • 邮件服务器是否允许中继特定域名/电子邮件地址?

  • 邮件服务器支持哪些SMTP命令?

  • 服务器是否响应正确的主机名?

  • 连接是否在任何第三方软件或API外部工作?

所有这些问题以及更多问题都可以通过一个简单的telnet测试来回答。

在我们开始之前,请务必在新选项卡中打开我们这篇文章的伴侣内容:退回消息发送到哪里?,以便在完成此博客后阅读。

注意,以下示例中使用的命令(以及其他命令)在 RFC 2821的第4.1节中有介绍。

如何使用 Telnet 发送 Email?

通过telnet发送电子邮件可以帮助您识别当前配置中的可传递性问题。

在使用telnet发送电子邮件之前,确认您的计算机上已安装并启用了telnet。大多数计算机都有预装的telnet客户端。对于那些没有的Windows版本,可以通过打开控制面板的“程序和功能”部分并选择“打开或关闭Windows功能”来安装。打开此窗口后,选择“telnet客户端”,然后单击确定。

验证服务器上已安装telnet客户端后,打开终端窗口,输入提示命令。在Windows上,使用Windows + R,输入“cmd”,然后按回车。对于Mac用户,可以通过打开Finder并在应用程序页面上搜索“实用工具”,或者在Launchpad搜索功能中输入“terminal”来找到终端图标。

接下来,我们需要找到一个邮件服务器登录。为此,我们需要给定域的DNS MX记录。可以使用以下命令找到(在这些示例中将使用port25.com,但可以替换任何域名):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

SMTP 端口快速参考

以下是常见SMTP提交端口及其使用时机的快速参考:

端口

加密

典型用例

备注

25

无 / 机会性TLS

服务器到服务器中继

常被ISP阻止以控制垃圾邮件

465

隐式SSL/TLS

传统安全提交

已弃用但仍被旧系统使用

587

STARTTLS

现代认证提交

建议用于客户端电子邮件提交

有关高级邮件服务器配置和优化,请参阅我们的PowerMTA配置技巧指南。如果您的SMTP中继使用的端口与示例中显示的端口25不同,则需使用邮件交换服务器的nslookup响应中指定的端口。您还可以通过咨询管理员或登录邮件交换服务器并查看协议来验证SMTP使用的端口。

接下来我们需要使用的IP的DNS PTR。首先我们需要知道互联网看到的IP地址是哪个。为此,我们可以使用以下的网站:

http://whatismyipaddress.com/

使用IP地址运行以下命令,其中A.B.C.D是该IP地址。

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

server.example.com只是一个例子,您的结果会有所不同。

现在我们已经有了port25.com的MX记录和我们将要使用的IP的PTR,是时候登录SMTP服务器了。为此,使用以下命令:

telnet mail.port25.com 25

现在应该显示类似如下的信息:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

如果此时收到诸如“无法连接”的错误消息,则端口号可能不正确或邮件服务器遇到问题。

发给邮件服务器的第一个命令是EHLO或HELO。这是一个基本的问候语,用于开始telnet客户端与SMTP服务器之间的通信。同样传递的是从我们之前确定的IP地址连接的DNS PTR。

EHLO server.example.com

应该返回类似如下的信息:

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

这显示了SMTP服务器接受的SMTP命令。不是所有的SMTP服务器都支持相同的命令集。例如,雅虎只显示以下内容:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

而aol只显示一个:

250 DSN

我们需要发出的下一个命令是MAIL FROM命令。这确定了退回的地址。这与from头不是同一个,它是在电子邮件客户端中显示的电子邮件地址。

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok

确保使用与您的邮件服务器域名相对应的域名。例如,如果您的电子邮件域是anycompany.com,您将希望使用you@anycompany.com,而不是外部电子邮件如you@free-mail-provider.com。域名的变化可能导致错误消息显示。

现在发送了MAIL FROM命令,我们可以发送RCPT TO命令。此命令告诉SMTP邮件服务器该邮件应发送给谁。此可以与to头相同或不同,to头是电子邮件客户端中显示的电子邮件地址。

RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

在发送RCPT TO命令之前仔细检查收件人的地址——此处显示的错误消息可能表示收件人电子邮件拼写错误或被阻止。

在开始消息内容之前需要运行的最后一个命令是DATA命令。此命令让SMTP邮件服务器知道将发送的所有内容都是消息的正文(这也包含标头)。

DATA 354 send message

需要注意的是,如果邮件服务器支持PIPELINING,如mail.port25.com,SMTP邮件服务器可能会等到发行DATA命令后才会响应EHLO/HELO之后的任何其他命令。在这种情况下,在等待响应之前输入MAIL FROM,RCPT TO和DATA命令。

现在发送了DATA命令,我们可以开始发送消息内容。这从各种标头开始。至少消息应包含to,from,subject和date标头。在此输入的标头将显示在用户的电子邮件客户端。

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

设置标头后,添加一个空白行,并进行回车/换行(只需按两次回车),然后开始消息的实际正文。

你好,世界,这是从手动telnet会话发送的测试消息。此致,SMTP管理员

消息完成后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。这是用一行的一个句号表示的。如果在编写消息时需要一行的句号,则必须输入2个句号,第一个用于对第二个进行转义。

.   250 2.6.0 消息已收到

如果收到错误消息而不是“已收到”通知,请记录相关详细信息并联系您的电子邮件提供商寻求更多帮助。连接问题也可能与安全协议有关—请确保您正在使用TLS 1.2或更高版本进行安全连接。

最后,发送QUIT命令以关闭连接:

QUIT 221 2.0.0 mail.port25.com 说再见

邮箱服务器现在已经接受了该消息进行投递,您的telnet发送电子邮件测试已完成,并且应该已在RCPT TO地址的收件箱中!!!

以下是在不中断的情况下所有命令:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

MAIL FROM:<support@port25.com>
250 2.1.0 MAIL ok

RCPT TO:<support@port25.com>
250 2.1.5 <support@port25.com> ok

DATA
354 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

使用telnet发送电子邮件可以让您快速测试连接能力,比强大的诊断设备或软件成本更低。对于更高级的SMTP测试工具,可以使用Swaks与SparkPost进行全面的电子邮件测试。

通过telnet发送电子邮件可以帮助您识别当前配置中的可传递性问题。

在使用telnet发送电子邮件之前,确认您的计算机上已安装并启用了telnet。大多数计算机都有预装的telnet客户端。对于那些没有的Windows版本,可以通过打开控制面板的“程序和功能”部分并选择“打开或关闭Windows功能”来安装。打开此窗口后,选择“telnet客户端”,然后单击确定。

验证服务器上已安装telnet客户端后,打开终端窗口,输入提示命令。在Windows上,使用Windows + R,输入“cmd”,然后按回车。对于Mac用户,可以通过打开Finder并在应用程序页面上搜索“实用工具”,或者在Launchpad搜索功能中输入“terminal”来找到终端图标。

接下来,我们需要找到一个邮件服务器登录。为此,我们需要给定域的DNS MX记录。可以使用以下命令找到(在这些示例中将使用port25.com,但可以替换任何域名):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

SMTP 端口快速参考

以下是常见SMTP提交端口及其使用时机的快速参考:

端口

加密

典型用例

备注

25

无 / 机会性TLS

服务器到服务器中继

常被ISP阻止以控制垃圾邮件

465

隐式SSL/TLS

传统安全提交

已弃用但仍被旧系统使用

587

STARTTLS

现代认证提交

建议用于客户端电子邮件提交

有关高级邮件服务器配置和优化,请参阅我们的PowerMTA配置技巧指南。如果您的SMTP中继使用的端口与示例中显示的端口25不同,则需使用邮件交换服务器的nslookup响应中指定的端口。您还可以通过咨询管理员或登录邮件交换服务器并查看协议来验证SMTP使用的端口。

接下来我们需要使用的IP的DNS PTR。首先我们需要知道互联网看到的IP地址是哪个。为此,我们可以使用以下的网站:

http://whatismyipaddress.com/

使用IP地址运行以下命令,其中A.B.C.D是该IP地址。

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

server.example.com只是一个例子,您的结果会有所不同。

现在我们已经有了port25.com的MX记录和我们将要使用的IP的PTR,是时候登录SMTP服务器了。为此,使用以下命令:

telnet mail.port25.com 25

现在应该显示类似如下的信息:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

如果此时收到诸如“无法连接”的错误消息,则端口号可能不正确或邮件服务器遇到问题。

发给邮件服务器的第一个命令是EHLO或HELO。这是一个基本的问候语,用于开始telnet客户端与SMTP服务器之间的通信。同样传递的是从我们之前确定的IP地址连接的DNS PTR。

EHLO server.example.com

应该返回类似如下的信息:

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

这显示了SMTP服务器接受的SMTP命令。不是所有的SMTP服务器都支持相同的命令集。例如,雅虎只显示以下内容:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

而aol只显示一个:

250 DSN

我们需要发出的下一个命令是MAIL FROM命令。这确定了退回的地址。这与from头不是同一个,它是在电子邮件客户端中显示的电子邮件地址。

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok

确保使用与您的邮件服务器域名相对应的域名。例如,如果您的电子邮件域是anycompany.com,您将希望使用you@anycompany.com,而不是外部电子邮件如you@free-mail-provider.com。域名的变化可能导致错误消息显示。

现在发送了MAIL FROM命令,我们可以发送RCPT TO命令。此命令告诉SMTP邮件服务器该邮件应发送给谁。此可以与to头相同或不同,to头是电子邮件客户端中显示的电子邮件地址。

RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

在发送RCPT TO命令之前仔细检查收件人的地址——此处显示的错误消息可能表示收件人电子邮件拼写错误或被阻止。

在开始消息内容之前需要运行的最后一个命令是DATA命令。此命令让SMTP邮件服务器知道将发送的所有内容都是消息的正文(这也包含标头)。

DATA 354 send message

需要注意的是,如果邮件服务器支持PIPELINING,如mail.port25.com,SMTP邮件服务器可能会等到发行DATA命令后才会响应EHLO/HELO之后的任何其他命令。在这种情况下,在等待响应之前输入MAIL FROM,RCPT TO和DATA命令。

现在发送了DATA命令,我们可以开始发送消息内容。这从各种标头开始。至少消息应包含to,from,subject和date标头。在此输入的标头将显示在用户的电子邮件客户端。

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

设置标头后,添加一个空白行,并进行回车/换行(只需按两次回车),然后开始消息的实际正文。

你好,世界,这是从手动telnet会话发送的测试消息。此致,SMTP管理员

消息完成后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。这是用一行的一个句号表示的。如果在编写消息时需要一行的句号,则必须输入2个句号,第一个用于对第二个进行转义。

.   250 2.6.0 消息已收到

如果收到错误消息而不是“已收到”通知,请记录相关详细信息并联系您的电子邮件提供商寻求更多帮助。连接问题也可能与安全协议有关—请确保您正在使用TLS 1.2或更高版本进行安全连接。

最后,发送QUIT命令以关闭连接:

QUIT 221 2.0.0 mail.port25.com 说再见

邮箱服务器现在已经接受了该消息进行投递,您的telnet发送电子邮件测试已完成,并且应该已在RCPT TO地址的收件箱中!!!

以下是在不中断的情况下所有命令:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

MAIL FROM:<support@port25.com>
250 2.1.0 MAIL ok

RCPT TO:<support@port25.com>
250 2.1.5 <support@port25.com> ok

DATA
354 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

使用telnet发送电子邮件可以让您快速测试连接能力,比强大的诊断设备或软件成本更低。对于更高级的SMTP测试工具,可以使用Swaks与SparkPost进行全面的电子邮件测试。

通过telnet发送电子邮件可以帮助您识别当前配置中的可传递性问题。

在使用telnet发送电子邮件之前,确认您的计算机上已安装并启用了telnet。大多数计算机都有预装的telnet客户端。对于那些没有的Windows版本,可以通过打开控制面板的“程序和功能”部分并选择“打开或关闭Windows功能”来安装。打开此窗口后,选择“telnet客户端”,然后单击确定。

验证服务器上已安装telnet客户端后,打开终端窗口,输入提示命令。在Windows上,使用Windows + R,输入“cmd”,然后按回车。对于Mac用户,可以通过打开Finder并在应用程序页面上搜索“实用工具”,或者在Launchpad搜索功能中输入“terminal”来找到终端图标。

接下来,我们需要找到一个邮件服务器登录。为此,我们需要给定域的DNS MX记录。可以使用以下命令找到(在这些示例中将使用port25.com,但可以替换任何域名):

Windows:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  MX preference = 100, mail exchanger = mail.port25.com

Linux:

nslookup -type=mx port25.com
Non-authoritative answer:
port25.com  mail exchanger = 100 mail.port25.com

SMTP 端口快速参考

以下是常见SMTP提交端口及其使用时机的快速参考:

端口

加密

典型用例

备注

25

无 / 机会性TLS

服务器到服务器中继

常被ISP阻止以控制垃圾邮件

465

隐式SSL/TLS

传统安全提交

已弃用但仍被旧系统使用

587

STARTTLS

现代认证提交

建议用于客户端电子邮件提交

有关高级邮件服务器配置和优化,请参阅我们的PowerMTA配置技巧指南。如果您的SMTP中继使用的端口与示例中显示的端口25不同,则需使用邮件交换服务器的nslookup响应中指定的端口。您还可以通过咨询管理员或登录邮件交换服务器并查看协议来验证SMTP使用的端口。

接下来我们需要使用的IP的DNS PTR。首先我们需要知道互联网看到的IP地址是哪个。为此,我们可以使用以下的网站:

http://whatismyipaddress.com/

使用IP地址运行以下命令,其中A.B.C.D是该IP地址。

Windows:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

Linux:

nslookup -type=ptr A.B.C.D
Non-authoritative answer: 
D.C.B.A.in-addr.arpa name = server.example.com

server.example.com只是一个例子,您的结果会有所不同。

现在我们已经有了port25.com的MX记录和我们将要使用的IP的PTR,是时候登录SMTP服务器了。为此,使用以下命令:

telnet mail.port25.com 25

现在应该显示类似如下的信息:

Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

如果此时收到诸如“无法连接”的错误消息,则端口号可能不正确或邮件服务器遇到问题。

发给邮件服务器的第一个命令是EHLO或HELO。这是一个基本的问候语,用于开始telnet客户端与SMTP服务器之间的通信。同样传递的是从我们之前确定的IP地址连接的DNS PTR。

EHLO server.example.com

应该返回类似如下的信息:

250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

这显示了SMTP服务器接受的SMTP命令。不是所有的SMTP服务器都支持相同的命令集。例如,雅虎只显示以下内容:

250-8BITMIME 
250-SIZE 41943040 
250 PIPELINING

而aol只显示一个:

250 DSN

我们需要发出的下一个命令是MAIL FROM命令。这确定了退回的地址。这与from头不是同一个,它是在电子邮件客户端中显示的电子邮件地址。

MAIL FROM: <support@port25.com> 250 2.1.0 MAIL ok

确保使用与您的邮件服务器域名相对应的域名。例如,如果您的电子邮件域是anycompany.com,您将希望使用you@anycompany.com,而不是外部电子邮件如you@free-mail-provider.com。域名的变化可能导致错误消息显示。

现在发送了MAIL FROM命令,我们可以发送RCPT TO命令。此命令告诉SMTP邮件服务器该邮件应发送给谁。此可以与to头相同或不同,to头是电子邮件客户端中显示的电子邮件地址。

RCPT TO: <support@port25.com> 250 2.1.5 <support@port25.com> ok

在发送RCPT TO命令之前仔细检查收件人的地址——此处显示的错误消息可能表示收件人电子邮件拼写错误或被阻止。

在开始消息内容之前需要运行的最后一个命令是DATA命令。此命令让SMTP邮件服务器知道将发送的所有内容都是消息的正文(这也包含标头)。

DATA 354 send message

需要注意的是,如果邮件服务器支持PIPELINING,如mail.port25.com,SMTP邮件服务器可能会等到发行DATA命令后才会响应EHLO/HELO之后的任何其他命令。在这种情况下,在等待响应之前输入MAIL FROM,RCPT TO和DATA命令。

现在发送了DATA命令,我们可以开始发送消息内容。这从各种标头开始。至少消息应包含to,from,subject和date标头。在此输入的标头将显示在用户的电子邮件客户端。

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

设置标头后,添加一个空白行,并进行回车/换行(只需按两次回车),然后开始消息的实际正文。

你好,世界,这是从手动telnet会话发送的测试消息。此致,SMTP管理员

消息完成后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。这是用一行的一个句号表示的。如果在编写消息时需要一行的句号,则必须输入2个句号,第一个用于对第二个进行转义。

.   250 2.6.0 消息已收到

如果收到错误消息而不是“已收到”通知,请记录相关详细信息并联系您的电子邮件提供商寻求更多帮助。连接问题也可能与安全协议有关—请确保您正在使用TLS 1.2或更高版本进行安全连接。

最后,发送QUIT命令以关闭连接:

QUIT 221 2.0.0 mail.port25.com 说再见

邮箱服务器现在已经接受了该消息进行投递,您的telnet发送电子邮件测试已完成,并且应该已在RCPT TO地址的收件箱中!!!

以下是在不中断的情况下所有命令:

telnet mail.port25.com 25
Trying 69.63.149.30...
Connected to mail.port25.com (69.63.149.30).
Escape character is '^]'.
  
220 mail.port25.com (PowerMTA(TM) v4.0) ESMTP service ready

EHLO server.example.com
250-mail.port25.com says hello
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250-8BITMIME
250-XACK
250-XMRG
250-SIZE 54525952
250-VERP
250 DSN

MAIL FROM:<support@port25.com>
250 2.1.0 MAIL ok

RCPT TO:<support@port25.com>
250 2.1.5 <support@port25.com> ok

DATA
354 send message

From: "John Smith" <jsmith@port25.com>
To: "Jane Doe" <jdoe@port25.com>
Subject: test message sent from manual telnet session
Date: Wed, 11 May 2011 16:19:57 -0400

Hello World,
This is a test message sent from a manual telnet session.
Yours truly,
SMTP administrator
.

250 2.6.0 message received

QUIT
221 2.0.0 mail.port25.com says goodbye

使用telnet发送电子邮件可以让您快速测试连接能力,比强大的诊断设备或软件成本更低。对于更高级的SMTP测试工具,可以使用Swaks与SparkPost进行全面的电子邮件测试。

如何使用Telnet认证测试SMTP?

现在您知道如何使用telnet检查SMTP连接,我们将讨论身份验证过程。SMTP身份验证有助于防止大量垃圾邮件到达读者的收件箱,尽管并非所有邮件交换服务器都需要它。在分析电子邮件头时,了解身份验证对于可递送性故障排除也至关重要。

现代身份验证协议的主要区别在于存在base64编码。Base64将二进制数据转换为邮件服务器成功数据传输所需的ASCII文本格式。这是一种以计算机可以理解的数字格式表示您的登录凭据的方式——一些文本的组合。

您可以使用软件或免费在线工具生成您的base64编码。一旦您将信息传达给邮件服务器,它会将此数据与其记录进行比较以确定身份验证。

要通过telnet测试SMTP身份验证,请完成以下步骤:

  • 打开终端并使用telnet服务器名称和访问命令连接到邮件服务器——上面的示例中是mail.port25.com。

  • 用EHLO或HELO向服务器问候,输入AUTH LOGIN,并等待计算机的响应。

  • 输入以base64编码的用户名并允许服务器回答。

  • 输入base64编码的密码,您应该收到类似“身份验证成功”的响应。

  • 继续使用MAIL FROM,RCPT TO,DATA和QUIT发送您的身份验证电子邮件。

现在您知道如何使用telnet检查SMTP连接,我们将讨论身份验证过程。SMTP身份验证有助于防止大量垃圾邮件到达读者的收件箱,尽管并非所有邮件交换服务器都需要它。在分析电子邮件头时,了解身份验证对于可递送性故障排除也至关重要。

现代身份验证协议的主要区别在于存在base64编码。Base64将二进制数据转换为邮件服务器成功数据传输所需的ASCII文本格式。这是一种以计算机可以理解的数字格式表示您的登录凭据的方式——一些文本的组合。

您可以使用软件或免费在线工具生成您的base64编码。一旦您将信息传达给邮件服务器,它会将此数据与其记录进行比较以确定身份验证。

要通过telnet测试SMTP身份验证,请完成以下步骤:

  • 打开终端并使用telnet服务器名称和访问命令连接到邮件服务器——上面的示例中是mail.port25.com。

  • 用EHLO或HELO向服务器问候,输入AUTH LOGIN,并等待计算机的响应。

  • 输入以base64编码的用户名并允许服务器回答。

  • 输入base64编码的密码,您应该收到类似“身份验证成功”的响应。

  • 继续使用MAIL FROM,RCPT TO,DATA和QUIT发送您的身份验证电子邮件。

现在您知道如何使用telnet检查SMTP连接,我们将讨论身份验证过程。SMTP身份验证有助于防止大量垃圾邮件到达读者的收件箱,尽管并非所有邮件交换服务器都需要它。在分析电子邮件头时,了解身份验证对于可递送性故障排除也至关重要。

现代身份验证协议的主要区别在于存在base64编码。Base64将二进制数据转换为邮件服务器成功数据传输所需的ASCII文本格式。这是一种以计算机可以理解的数字格式表示您的登录凭据的方式——一些文本的组合。

您可以使用软件或免费在线工具生成您的base64编码。一旦您将信息传达给邮件服务器,它会将此数据与其记录进行比较以确定身份验证。

要通过telnet测试SMTP身份验证,请完成以下步骤:

  • 打开终端并使用telnet服务器名称和访问命令连接到邮件服务器——上面的示例中是mail.port25.com。

  • 用EHLO或HELO向服务器问候,输入AUTH LOGIN,并等待计算机的响应。

  • 输入以base64编码的用户名并允许服务器回答。

  • 输入base64编码的密码,您应该收到类似“身份验证成功”的响应。

  • 继续使用MAIL FROM,RCPT TO,DATA和QUIT发送您的身份验证电子邮件。

其他新闻

阅读更多来自此类别的内容

A person is standing at a desk while typing on a laptop.

完整的AI原生平台,可与您的业务一起扩展。

© 2025 Bird

A person is standing at a desk while typing on a laptop.

完整的AI原生平台,可与您的业务一起扩展。

© 2025 Bird