如何通过手动 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中打开应用程序页面, 搜索“Utilities”, 或者在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使用以下三个端口之一——25、465或587,Microsoft Outlook通常使用后者。 有关邮件服务器高级配置和优化,请查看我们关于PowerMTA配置提示的指南。 如果您的SMTP中继使用的端口与示例中所显示的25不同,您将使用邮件交换服务器对nslookup作出的响应中指定的端口。您也可以通过询问管理员或登录邮件交换服务器并查看协议来验证SMTP所依赖的端口。

接下来我们需要的是我们要使用的IP的DNS PTR。 首先我们需要知道互联网看到我们的IP地址是什么。 要找出这个,我们可以使用像这样的网站:

http://whatismyipaddress.com/

运行以下命令,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服务器都支持同一组命令。 例如,yahoo仅显示以下内容:

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标头相同或不同,后者是电子邮件客户端中显示的电子邮件地址。

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

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

在开始消息正文之前运行的最后一个命令是DATA命令。 该命令告知SMTP邮件服务器接下来的所有内容都是消息正文(其中也包含标头)。

DATA 354 发信息

值得注意的是,如果邮件服务器支持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

设置标头后,我们现在添加一个空白行并敲击两次回车键,然后开始输入消息正文。

Hello World, 这是从手动telnet会话发送的测试消息。 您忠实的SMTP管理员

完成消息后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。 这通过在行上的一个句点来完成。 如果在编写消息过程中需要一个单独行上的句点,您必须输入两个句点,第一个是转义第二个。

.   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 with SparkPost来进行全面的电子邮件测试。

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

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

一旦确认在服务器上安装了telnet客户端, 打开终端窗口, 在该窗口中您将输入命令提示符。 在Windows上, 使用Windows + R, 输入“cmd”, 然后按回车。 对于Mac用户, 您可以通过在Finder中打开应用程序页面, 搜索“Utilities”, 或者在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使用以下三个端口之一——25、465或587,Microsoft Outlook通常使用后者。 有关邮件服务器高级配置和优化,请查看我们关于PowerMTA配置提示的指南。 如果您的SMTP中继使用的端口与示例中所显示的25不同,您将使用邮件交换服务器对nslookup作出的响应中指定的端口。您也可以通过询问管理员或登录邮件交换服务器并查看协议来验证SMTP所依赖的端口。

接下来我们需要的是我们要使用的IP的DNS PTR。 首先我们需要知道互联网看到我们的IP地址是什么。 要找出这个,我们可以使用像这样的网站:

http://whatismyipaddress.com/

运行以下命令,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服务器都支持同一组命令。 例如,yahoo仅显示以下内容:

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标头相同或不同,后者是电子邮件客户端中显示的电子邮件地址。

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

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

在开始消息正文之前运行的最后一个命令是DATA命令。 该命令告知SMTP邮件服务器接下来的所有内容都是消息正文(其中也包含标头)。

DATA 354 发信息

值得注意的是,如果邮件服务器支持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

设置标头后,我们现在添加一个空白行并敲击两次回车键,然后开始输入消息正文。

Hello World, 这是从手动telnet会话发送的测试消息。 您忠实的SMTP管理员

完成消息后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。 这通过在行上的一个句点来完成。 如果在编写消息过程中需要一个单独行上的句点,您必须输入两个句点,第一个是转义第二个。

.   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 with SparkPost来进行全面的电子邮件测试。

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

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

一旦确认在服务器上安装了telnet客户端, 打开终端窗口, 在该窗口中您将输入命令提示符。 在Windows上, 使用Windows + R, 输入“cmd”, 然后按回车。 对于Mac用户, 您可以通过在Finder中打开应用程序页面, 搜索“Utilities”, 或者在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使用以下三个端口之一——25、465或587,Microsoft Outlook通常使用后者。 有关邮件服务器高级配置和优化,请查看我们关于PowerMTA配置提示的指南。 如果您的SMTP中继使用的端口与示例中所显示的25不同,您将使用邮件交换服务器对nslookup作出的响应中指定的端口。您也可以通过询问管理员或登录邮件交换服务器并查看协议来验证SMTP所依赖的端口。

接下来我们需要的是我们要使用的IP的DNS PTR。 首先我们需要知道互联网看到我们的IP地址是什么。 要找出这个,我们可以使用像这样的网站:

http://whatismyipaddress.com/

运行以下命令,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服务器都支持同一组命令。 例如,yahoo仅显示以下内容:

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标头相同或不同,后者是电子邮件客户端中显示的电子邮件地址。

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

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

在开始消息正文之前运行的最后一个命令是DATA命令。 该命令告知SMTP邮件服务器接下来的所有内容都是消息正文(其中也包含标头)。

DATA 354 发信息

值得注意的是,如果邮件服务器支持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

设置标头后,我们现在添加一个空白行并敲击两次回车键,然后开始输入消息正文。

Hello World, 这是从手动telnet会话发送的测试消息。 您忠实的SMTP管理员

完成消息后,我们需要告诉SMTP服务器我们已完成消息并希望SMTP邮件服务器接受它。 这通过在行上的一个句点来完成。 如果在编写消息过程中需要一个单独行上的句点,您必须输入两个句点,第一个是转义第二个。

.   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 with 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