网站首页 > 资源文章 正文
1. 介绍
1.1 介绍
福哥需要给TFPHP框架添加一个TFMail对象,因为发送电子邮件是通过Socket和SMTP服务器通讯完成的,这里面发送的数据包和接收的数据包都是要遵循SMTP协议的。
今天福哥就将SMTP协议的基本流程整理出来,根据这个流程,任何可以直接操作Socket发送接收封包的语言就都可以实现发送电子邮件的功能了。
2. SMTP协议
SMTP协议基本上就是使用Socket和SMTP服务器对话,这一切从客户端连接SMTP服务器开始。每次都是客户端“说”一句,服务器端“答”一句。客户端每“说”一句后面要以CRLF结尾。服务器端“答”一句最前面会有一个三位数的状态码用来识别结果是否是预期的。
3. 发送邮件过程
3.1 连接SMTP服务器
连接SMTP服务器,可以使用telnet进行测试
接收220消息
220 smtp.qq.com Esmtp QQ Mail Server
3.2 发送Hello
发送一个Hello消息给服务器
helo smtp.qq.com
接收250消息
250 smtp.qq.com
3.3 发送认证
发送auth login
auth login
接收334消息
334 VXNlcm5hbWU6
发送经过base64加密的用户名
enlAS253TXkuS29t
接收334消息
334 UGFzc3dvcmQ6
发送结果base64加密的密码
RGWiRTQzOjE=
接收235消息
235 Authentication successful
3.4 发送寄信地址消息
mail from:<12345@qq.com>
接收250消息
250 Ok
3.5 发送收信地址消息
rcpt to:<54321@qq.com>
接收250消息
250 Ok
3.6 发送数据
data
接收354消息
354 End data with <CR><LF>.<CR><LF>
发送数据,这里参考上一步接收到的信息里的提示,意思是说接下来可以随便输入数据,输入多条数据也可以,只要最后一条以“CRLF.CRLF”结尾即可(这里说的“CRLF”就是"\r\n",ASCII码对应10、11)
注意:这里让以“CRLF.CRLF”结尾,后面就不要再添加更多内容了,添加CRLF也不行。
- subject,指定了邮件标题
- content-type,指定了邮件正文的类型
subject: this is subject
content-type: text/html
this is body...
this is body...
...
this is body...
CRLF.CRLF
接收250消息
Ok: queued as
4. 总结
福哥将STMP协议给大家介绍了一下,遵循这些协议内容就可以完成发送电子邮件的功能了。
https://m.tongfu.net/home/35/blog/512975.html
猜你喜欢
- 2024-10-25 如何在 CentOS 8 上配置邮件服务器 ?
- 2024-10-25 Python 3 高级编程 - 使用 SMTP 发送电子邮件
- 2024-10-25 连接器科普——MPO连接器与MTP连接器有什么区别?
- 2024-10-25 微信企业产品率先通过ISO/IEC27018标准认证
- 2024-10-25 EMC-4641C运动控制器固件升级(EMC-4641C运动控制器固件升级改造)
- 2024-10-25 Postfix邮件服务器reject_unknown_hostname参数的测试
- 2024-10-25 品质服务-腾讯企业产品率先通过ISO/IEC27018标准认证
- 2024-10-25 PHP回顾之发送邮件(php接收邮件)
- 2024-10-25 谷歌云VPS如何在Centos7上安装和配置iRedMail邮件服务器
- 2024-10-25 黎明前的黑暗?】 面对那串神秘的字符串
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)