邮箱系统原理——SMTP协议
来源:互联网 发布:杰士邦 杜蕾斯 知乎 编辑:程序博客网 时间:2024/05/24 01:44
SMTP协议是一个基于TCP/IP的应用层协议,SMTP服务器的默认的网络监听端口号为25
SMTP协议中一共定义了18条命令:其中比较发送一封邮件的过程通常需要的有以下6条命令
ehlo命令:SMTP邮件发送程序与SMTP接收程序建立连接后必须发送的第一条SMTP命令,后面通常加本主机名
auth命令:认证命令,如auth login,然后输入用户名和密码(必须是BASE64编码后的)
userName = "abc"BASE64Encoder encoder = new BASE64Encoder();encoder.encode(userName.getBytes());
mail from命令:发送者邮箱地址,如mail from:<123@qq.com>
rcpt to命令:接受者邮箱地址,如rcpt to:<456@163.com>
data命令:此命令表示SMTP邮件发送程序准备开始传送邮件内容了,在该命令后发送的都被当成邮件内容,直到遇到结束符号内容结束,可以用"."
quit命令:表示要结束邮件发送过程
开始测试方法:dos命令下:
telnet命令+SMTP服务器名+端口号,如
telnet smtp.sina.com.cn 25
发送命令过程中,响应状态码的最高位数字代表了不同的分类,2代表命令执行成功,5代表命令执行失败,3代表命令还没完成
说明:一些邮件系统支持自动回复邮件的功能,但是如果两个邮箱的mail from命令后的地址是对方,这样会造成死循环回复,为了避免这样的情况,一些SMTP服务器在进行邮件自动回复时,通常不填写mail from命令后面的邮件地址,借此来避免循环回复
SMTP虽然是使用了TCP/IP的应用层协议,但是如果SMTP服务器用于向其他SMTP服务器转发邮件,它在接收到邮件发送程序的rcpt to 命令后,由于并不会马上向其他SMTP服务器转发当前邮件,而是先将当前邮件保存到邮件发送队列里面,所以,它无法检测到收件人是否存在,总是会返回250的响应状态码,。所以人们在通过SMTP服务器向外转发邮件时,即使收件人的地址不存在,或者邮件最终没有从邮件队列中转发出去,邮件客户端程序当时也会看到邮件发送成功的信息。故电子邮件并不是一种完全可靠的通信方式。
- 邮箱系统原理——SMTP协议
- 邮箱系统原理——POP3协议和IMAP协议
- 邮箱系统原理——基本原理
- SMTP协议工作原理
- 邮箱pop和smtp协议的说明
- 编写SMTP协议邮箱发信(QQ邮箱为例)
- 邮箱系统原理——邮件的组织结构
- 邮箱系统原理——JavaMail中邮件内容结构
- 邮箱系统原理——创建邮件内容并发送
- 20.12. smtplib — SMTP protocol client(SMTP 协议 客户端)
- 使用SMTP协议,通过QQ邮箱发送邮件
- 关于邮箱的三种协议POP3、SMTP和IMAP
- 各邮箱smtp服务器及支持的协议
- 邮件协议(SMTP)性能测试总结(Foxmail邮箱)
- 各邮箱smtp服务器及支持的协议
- System.Net.Mail 发送邮件 SMTP协议之二【常用邮箱的SMTP的配置】
- 邮件协议POP3/IMAP/SMTP服务的区别 常用邮箱的 IMAP/POP3/SMTP 设置
- Linux电子邮件系统模型及SMTP协议
- Cocos2d 改成竖屏的方法
- 流年,经不起怀念
- C语言关键字
- 关于java框架概述
- opencv 阈值处理
- 邮箱系统原理——SMTP协议
- MySQL错误"Out of range value adjusted for column ..."的解决方法
- 一台电脑上启动两个tomcat方法
- SQL语句性能调整原则
- OpenGL ES系列之0 – 建立Xcode项目
- 【数据结构】堆排序
- CentOS-6 yum安装nginx php53 mysql55 lnmp环境
- 关于命令提示符下编译和运行Java文件的小东西
- C++工具箱(四)——动画类之透明度渐变 & 大小渐变