telnet登录smtp发邮件

说明:
通过telnet登录到smtp发邮件,可以实现更改发件人信息!!!

实现:
1. 获取test@extmail.org用户名及密码的BASE64编码:

# perl -e 'use MIME::Base64; print encode_base64("test\@extmail.org")'
dGVzdEBleHRtYWlsLm9yZw==
# perl -e 'use MIME::Base64; print encode_base64("test")'
dGVzdA==

 
2. 本机测试

# telnet smtp.163.com 25    //登陆 smtp.163.com 端口号为 25
Trying 202.108.44.205...
Connected to smtp.163.com (202.108.44.205).
Escape character is '^]'.
220 163.com Coremail SMTP(Anti Spam) System
HELO localhost // 与服务器打招呼,并告知客户端使用的机器名字,可以随便填写
250 OK 
AUTH LOGIN     //使用身份认证登陆指令
334 dXNlcm5hbWU6
cmVkc29zMw== //输入已经base64_encode()过的用户名.
334 UGFzc3dvcmQ6
MbM2MDQ3NQ== //输入已经base64_encode()过的密码
235 Authentication successful
MAIL FROM: //告诉服务器发信人的地址
250 Mail OK
RCPT TO: //告诉服务器收信人的地址
250 Mail OK
DATA   //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。
354 End data with .
From:redsos3@163.com
To:yourframe@21cn.com 
Subject:test mail
test body
. //结束传输信件
250 Mail OK queued as smtp14,F0CPBFsuzUOvoDwE.41582S2
QUIT //断开连接
221 Bye
Connection closed by foreign host.

 
说明:
1. telnet mail.contoso.com 25 //可以将服务器名 替换为您要连接到的 SMTP 服务器的 IP 地址或 FQDN。如果命令起生效,您将会收到来自 SMTP 服务器的类似以下内容的消息:
220 site.contoso.com Microsoft Exchange Internet Mail Connector
注意:由于有许多不同版本的 Microsoft SMTP 或第三方 SMTP 服务器,因此您可能会收到来自接收服务器的不同的消息。不过,您肯定会收到包含服务器的 FQDN 和 SMTP 的版本的 220 消息。此外,所有版本的 Microsoft SMTP 在 220 消息中都包含“Microsoft”一词。

2. EHLO test.com //通过键入以下命令开始通信。您可以使用 HELO 命令,但是 EHLO 是扩展 SMTP 动词集中的一个动词,SMTP 的所有当前 Microsoft 实现都支持该动词集。除非您认为扩展 SMTP 动词有问题,否则最好使用 EHLO。

如果该命令成功,您会收到以下消息:
250 OK

3. 键入以下命令向接收 SMTP 服务器通知邮件发件人
MAIL FROM:Admin@test.com //该地址可以是您想使用的任何 SMTP 地址,但是最好考虑以下问题:
有些 SMTP 邮件系统会基于 MAIL FROM:地址筛选邮件,并且会禁止某些 IP 地址连接到 SMTP 邮件系统,或者如果连接 IP 地址与 SMTP 邮件系统所在的域不匹配,它还会禁止该地址向 SMTP 邮件系统发送电子邮件。在本例中,该域是 test.com。
如果您在发送邮件时没有使用有效的电子邮件地址,您将无法确定在发送邮件时是否有问题,因为未送达报告 (NDR) 无法到达无效的 IP 地址。如果您使用有效的电子邮件地址,您将会收到来自 SMTP 服务器的以下消息:
250 OK – MAIL FROM Admin@test.com
键入以下命令向接收 SMTP 服务器通知邮件的收件人。

注意:最好始终使用要发送到的域中的有效收件人 SMTP 地址。例如,如果您要发送到 john@domain.com,必须确保域中存在 john@domain.com。否则,您会收到 NDR。

4. 使用您要发送到的人员的 SMTP 地址
RCPT TO:User@Domain.Com
您会收到以下消息:
250 OK – Recipient User@ Domain.Com
键入以下命令通知 SMTP 服务器您已准备好发送数据:

5.开始传输邮件
DATA //您会收到以下消息:
354 Send data. End with CRLF.CRLF
您现在已可以开始键入邮件的 822/2822 部分。用户将会在他们的收件箱中看到邮件的这一部分
to:User@Domain.Com
from:Admin@test.com
subject:test mail
from:Admin@test.com

6.在下一个空行中键入英文句点 (.),然后按 Enter 键,完成邮件传输
.
250 OK

7. 关闭连接:
QUIT //您会收到以下消息:
221 closing connection
验证收件人是否收到您发送的消息。如果在应用程序事件日志中出现任何错误事件消息,或者接收邮件时出现问题,请检查主机的配置或通信。

附录:
附录1:状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间来自:

发表评论

邮箱地址不会被公开。 必填项已用*标注