我想使用telnet发送带有SMTP的电子邮件。似乎我已成功连接到邮件服务。消息也被放入队列中。但为什么SMTP服务无法将邮件发送到收到的地址?
当我通过互联网搜索解决方案时,有人说防火墙应该支付它。但我不知道防火墙或防病毒软件与telnet之间的关系。
这是我的命令:
220 smtp-5-124.smtpsmail.fmail.xd.sinanode.com ESMTP
helo a
250 smtp-5-124.smtpsmail.fmail.xd.sinanode.com
auth login
334 VXNlcd5hbWU6
a25vd215aGV2341241fasYS5jbg==
334 UGFzczdvcmQ6
UmF5V2adfa23adsfZzgyNA==
235 OK Authenticated
mail from: <knowmyheart@sina.cn>
502 unimplemented (#5.5.1)
mail from:<knowmyheart@sina.cn>
553 Envolope sender mismatch with login user..
mail from:<knowmyheart@sina.cn>
250 ok
rcpt to:<517447201@qq.com>
250 ok
data
354 End data with <CR><LF>.<CR><LF>
subject: test
to:<517447201@qq.com>
from:<knowmyheart@sina.cn>
Testttttttttttttt!
.
250 ok queue id 6744281442287
451 Timeout.
顺便说一句,我在Windows 10和Ubuntu-15.10上都试过了。他们两个都失败了同样的问题。
答案 0 :(得分:0)
最后,我找到了我错的地方。
在我之前的案例中,我没有发送带有上述代码的电子邮件。我已成功连接到SMTP服务器,除了&#34; Timeout&#34;响应。实际上,&#34; Timeout&#34;并不意味着我没有发送电子邮件但丢失了TCP连接。几小时后,我登录了用于发送的电子邮件,发现我收到了一封邮件。邮件告诉我我之前几小时发送的电子邮件已经发回,没有发布。所以这意味着原因很少是因为我的telnet客户端,而是服务器或其他东西。
最后,我发现这是因为我的邮件格式。在我之前的代码中,在发送关键字 - &#34;数据&#34;后,我立即发送内容。
data
354 End data with <CR><LF>.<CR><LF>
subject: test
to:<517447201@qq.com>
from:<knowmyheart@sina.cn>
Testttttttttttttt!
.
250 ok queue id 6744281442287
当我将其改为此时,它有效。
data
354 End data with <CR><LF>.<CR><LF>
subject: test
to:<517447201@qq.com>
from:<knowmyheart@sina.cn>
Testttttttttttttt!
.
250 ok queue id 6744281442287
请注意,代码之间的差异是此邮件中内容之前的空行。 &#34; subject&#34;,&#34; to&#34; &#34;来自&#34;是标题。在标题和内容之间,必须有一个空行。
同样,可以忽略邮件中的标题。代码是这样的:
data
354 End data with <CR><LF>.<CR><LF>
Testttttttttttttt!
.
250 ok queue id 6744281442287
451 Timeout.
即使存在&#34; Timeout&#34;,它也会影响localhost和smtp服务器之间的tcp连接。