一、smtp协议的简单介绍
1. 名字:简单邮件传输协议
2. 作用:发送邮件(C/S模式)
二、 一个交换邮件报文的例子
C:client S:server
三、telnet模拟smtp协议发送邮件
一般的smtp邮件服务器域名都是smtp.xxx.xxx,比如QQ邮箱的smtp服务器是smtp.qq.com,126邮箱是smtp.126.com,少部分比较特殊,比如hust邮箱的smtp服务器竟然是mail.hust.edu.cn。。这里以QQ邮箱为例
第一步是这条命令:“telnet smtp.qq.com 25”,smtp服务的默认端口是25
接下来看图说话吧
本地命令顺序依次为
效果如何呢,且看我邮箱截图
由于我刚才一不小心,把data里面的from项写错了,而我登录又是用1581765585@qq.com这个邮箱,这两个不一致,所以才会出现发件人第二行的“由......代发”这一句。如果两者一致,就不存在代发的问题,也就不会有这一句提示。还有需要注意的是,data的格式一定要按照图示的,主题(subject)和邮件正文之间有个空行。。还有最后邮件内容结束是通过判断这个标志“回车换行+小数点+回车换行”来结束的。
最后切断与smtp服务器之间的连接用QUIT这个命令,刚才忘加了。。OK,这个过程就算结束了,多折腾吧。
补充一下服务器返回代码代表的含义
1. 名字:简单邮件传输协议
2. 作用:发送邮件(C/S模式)
二、 一个交换邮件报文的例子
C:client S:server
- S: 220 hamburger.edu
- C: HELO crepes.fr
- S: 250 Hello crepes.fr, pleased to meet you
- C: MAIL FROM:<alice@crepes.fr>
- S: 250 alice@crepes.fr … Sender ok
- C: RCPT TO:bob@hamburger.edu
- S: 250 bob@hamburger.edu … Recipient OK
- C: DATA
- S: 354 Enter mail, end with “.” on a line by itself
- C: Do you like ketchup?
- C: How about pickles?
- C: .
- S: 250 Message accepted for delivery
- C: QUIT
- S: 221 hamburger.edu closing connection
一般的smtp邮件服务器域名都是smtp.xxx.xxx,比如QQ邮箱的smtp服务器是smtp.qq.com,126邮箱是smtp.126.com,少部分比较特殊,比如hust邮箱的smtp服务器竟然是mail.hust.edu.cn。。这里以QQ邮箱为例
第一步是这条命令:“telnet smtp.qq.com 25”,smtp服务的默认端口是25
接下来看图说话吧
本地命令顺序依次为
点击(此处)折叠或打开
- helo localhost
- (服务器回复)
- auth login
- (服务器回复)
- 经base64编码后的你的邮箱用户名
- (服务器回复)
- 经base64编码后的你的邮箱密码
- (服务器回复)
- MAIL FROM:<1581765585@qq.com>
- (服务器回复)
- RCPT TO:<1223292709@qq.com>
- (服务器回复)
- DATA
- From:wmlhust@126.com
- To:1581765585@qq.com
- Subject:this is the subject
- this is the content of the mail
- .
- (服务器回复)
由于我刚才一不小心,把data里面的from项写错了,而我登录又是用1581765585@qq.com这个邮箱,这两个不一致,所以才会出现发件人第二行的“由......代发”这一句。如果两者一致,就不存在代发的问题,也就不会有这一句提示。还有需要注意的是,data的格式一定要按照图示的,主题(subject)和邮件正文之间有个空行。。还有最后邮件内容结束是通过判断这个标志“回车换行+小数点+回车换行”来结束的。
最后切断与smtp服务器之间的连接用QUIT这个命令,刚才忘加了。。OK,这个过程就算结束了,多折腾吧。
补充一下服务器返回代码代表的含义