linux - 使用 telnet 或 netcat 测试外发 SMTP 电子邮件时,我无法结束消息 'with "."on a line by itself'

标签 linux bash

当通过 telnet 或 netcat 向我的 ISP 的 SMTP 服务器发送一封简单的电子邮件时,我无法用句点终止该消息。最终连接超时,但消息未送达。

root@zeus:/tmp# telnet mail.charter.net 25
220 imp09 smtp.charter.net ESMTP server ready 20110115 000442
HELO charter.net
250 imp09 hello [97.94.115.109], pleased to meet you
MAIL FROM: test@gmail.com
250 2.1.0 <test@gmail.com> sender ok
RCPT TO: test@gmail.com
250 2.1.5 <test@gmail.com> recipient ok
DATA
354 enter mail, end with "." on a line by itself
test body

.

.

/n.
/n
.

\n
.

QUIT

这在同一网络和 ISP 上使用不同版本的 telnet 的另一台计算机上工作正常。

netcat 在两台计算机上以相同的方式挂起。

我在想这可能与LINEMODE有关,因为无法发送电子邮件的telnet session 处于LINEMODE并且无法切换到CHARMODE。有什么变通办法吗?

最佳答案

您发送的换行符可能只是回车符或换行符。 SMTP 需要回车符后跟换行符来结束一行。

https://www.rfc-editor.org/rfc/rfc5321#section-2.3.8

https://www.rfc-editor.org/rfc/rfc5321#section-4.1.1.4

尝试以 Control-M Control-J 结束每一行,使用不同的终端程序,和/或使用 telnet 以外的程序。

关于linux - 使用 telnet 或 netcat 测试外发 SMTP 电子邮件时,我无法结束消息 'with "."on a line by itself',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4698127/

相关文章:

python - 使用子进程从 python 运行 tcpdump bash x 分钟

linux - 使用 bash 返回码进行编程是一种好方法吗?

bash - 如何在 ubuntu 上获取 SFTP 登录警报(电子邮件或短信)?

arrays - bash shell 脚本如何构造带空格的数组元素

java - 列出 httpd 和 Tomcat 之间的 AJP 连接

linux - bash: terraform: 未找到命令,导出 $PATH 未解析

linux - Ubuntu 11.10-如何在不使用X的情况下进入控制台

linux - 强制 SNMP 将数字视为整数

linux - Ubuntu bash 脚本重用输入变量

mysql - 脚本通过 CentOS 无密码提示安装 mysql-server