使用Telnet程序手工发送邮件

源:http://haolloyin.blog.51cto.com/1177454/351256
评:
如下(其中的<Space>代表一个空格,<CRLF>代表回车加换行,即写代码时的 \r\n ):

ehlo<Space>主机名<CRLF>

SMTP 邮件发送程序与SMTP邮件接收程序建立连接的第一条必须的命令,主机名是当前邮件发送者的主机名;

auth<Space>login<CRLF>

现在一般的邮箱都需要进行用户名、密码验证,而且SMTP 邮件服务器一般都使用 Login 验证方式,因此就不用考虑其他两种验证方式了;

mail<Space>from:发送人邮箱地址<CRLF>

从命令中很明显地看出来 mail 命令用于指定邮件发送者的邮箱地址;

rcpt<Space>to:收件人邮箱地址<CRLF>

同理,rcpt 命令用于指定邮件接收人的邮箱地址;

data<CRLF>

data 命令用于表示该命令之后的所有内容、数据都将被作为邮件的相关内容,直到遇到<CRLF>.<CRLF>标识符,即一个句号“.”结束邮件的发送内容;

quit<CRLF>

该命令结束邮件发送过程,关闭本机与SMTP 邮件服务器的网络连接。

源:http://www.2cto.com/os/201205/130185.html

今天无意在一个论坛看到别人发帖用TELNET连接发信服务器可以伪造发信人地址,就仔细看了一下如何使用TELNET来发送邮件
我测试了一下163和QQ都成功发送了,但是伪造地址不行,这文章也不是重点说那个啊。。。。
首先要把登陆邮箱的用户名和密码用BASE64加密
可以用这个网站在线加密http://tool.chinaz.com/Tools/base64.aspx
然后
telnet smtp.qq.com 25
开始输入
helo xiaoyu
auth login
eGlhb3l1(加密后的用户名xiaoyu)
eGlhb3l1(加密后的密码xiaoyu)
mail from:<[email protected]>
rcpt to:<[email protected]>
data
From:[email protected]
To:[email protected]
Subject:test

test

.(最后这个小数点一定要加上,以下是效果图)



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

你可能感兴趣的:(telnet)