使用telnet登录SMTP服务发送邮件

最近在看《计算机网络自顶向下方法》,初步了解了SMTP协议。尝试用telnet登录SMTP服务给自己的qq邮箱发送了一封邮件,中间踩了很多坑,现在把具体步骤总结如下:

1.打开终端,输入telnet,回车

2.输入o smtp.139.com 25,此处o是open的缩写,以139邮箱为例,25表示SMTP服务器时刻监听的端口号,登录SMTP服务器。服务器返回220 localhost richmail system v10(2eff5a1190ba8e2-ea850)表示成功

3.输入HELO xxx,和服务器打招呼,xxx可以是任意内容,确认服务器应答,服务器返回250 localhost richmail system v10(2eff5a1190ba8e2-ea850)表示成功

4.输入auth login,请求登录,服务器返回334 dXNlcm5hbWU6,334是成功的状态码,后面是 username: 的base64码,可以在网上找到编码和解码工具

5.输入转换为base64码后的发送邮箱的用户名,不用带邮件域名,服务器返回334 UGFzc3dvcmQ6,334是成功的状态码,后面是 password: 的base64码

6.输入转换为base64码后的发送邮箱的密码,服务器返回235 Authentication successful表示登录成功

7.输入MAIL FROM:<发件人邮箱地址>,告诉服务器发信人的地址,服务器返回250 Mail OK表示成功

8.输入RCPT TO:<收件人邮箱地址>,告诉服务器收信人的地址,服务器返回250 Mail OK表示成功

9.输入DATA,开始写邮件,服务器返回354 End data with .提示邮件以一个单独占有一行的.结束

10.邮件格式如下:

To:收件人邮箱地址
From:发件人邮箱地址
Subject:邮件主题 //前三行是首部行
            //首部行和报文体之间要有一个空行   
邮件正文    //报文体
.   //结束邮件的标志

服务器返回250 ok表示发送成功,如果要继续发送,则返回步骤7重复即可。

11.发送完所有邮件之后输入QUIT,关闭TCP连接

下面是成功接收的邮件

test.png

注意几个坑:
1.发件方使用的是139邮箱,尝试qq邮箱和163邮箱开启了SMTP服务也不成功,可能是基于安全性考虑进行了限制
2.收件方邮箱如果有反垃圾机制,应该事先关闭,否则会拒绝接收邮件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 五、电子邮件 1.电子邮件概述 一个电子邮件系统应具有三个主要组成构件:用户代理、邮件服务器、邮件发送协议(如SM...
    dmmy大印阅读 1,049评论 0 1
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,267评论 4 16
  • 28.1 引言 电子邮件(e-mail)无疑是最流行的应用程序。[Caceres et al.1991]说明,所有...
    张芳涛阅读 3,933评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,273评论 19 139
  • 了悟 一 花期过了 叶也黄了 梧桐树下 只瘦影徘徊 春天去了 红颜落了 细雨窗前 独自话忧愁 长长短短来时路 缠缠...
    耀坤Rosy阅读 263评论 0 0