电子邮件协议(SMTP协议,POP3协议)
电子邮件协议(SMTP协议,POP3协议)
- SMTP
- 使用Telnet访问SMTP服务器
- POP3
- 使用Telnet访问POP3服务器
SMTP
STMP(简单邮件传输协议)是因特网电子邮件的核心。如下图所示,SMTP是负责将用户代理(如Outlook)的邮件发送到邮件服务器,以及服务器之间发送邮件的协议。SMTP有两个部分:SMTP客户端和SMTP服务器端。当一个邮件服务器向其它服务器发送邮件时,它就表现为SMTP客户端,当邮件服务器从其他邮件服务器上接收邮件时,它就表现为一个SMTP服务器端。
值得注意的是,SMTP只能传输ASCII码,如果想要传输非ASCII的文字以及图像、视频等,需要将这些数据编码为ASCII码,然后传输完毕后再还原为原始数据。
使用SMTP传输邮件的流程如下所示:
- Alice通过代理并使用SMTP协议将邮件发送到Alice的邮件服务器;
- Alice的邮件服务器发现Alice的邮件,并通过邮件中的收件人信息找到Bob的邮件服务器;
- Alice通过SMTP协议向Bob服务器发送邮件;
- Bob登录代理,通过其它协议(POP3,IMAP,HTML)获得邮件。
使用Telnet访问SMTP服务器
# 通过telnet命令建立起一个SMTP服务器的链接
telnet smtp.qq.com 25
# 得到返回信息220说明链接成功
220 newxmesmtplogicsvrszc1-0.qq.com XMail Esmtp QQ Mail Server.
# 打招呼,发送helo+任意内容
helo qq
# 得到返回250说明对方收到招呼
250-newxmesmtplogicsvrszc1-0.qq.com-9.146.228.40-10806377
250-SIZE 73400320
250 OK
# 输入 auth login进行登录,这里telnet表现为客户端,输入的用户名不会被发送到服务器,只有邮箱授权码会发送到服务器
auth login
# 得到 334 VXNlcm5hbWU6,其中VXNlcm5hbWU6VXNlcm5hbWU6是Username:的Base64格式
334 VXNlcm5hbWU6
# 输入用户名,即自己的qq号,但这里要是qq号的Base64格式
MjQ5ODE0NDI4OUBxcS5jb20=
# 得到334 UGFzc3dvcmQ6,其中UGFzc3dvcmQ6是Password:的Base64格式
334 UGFzc3dvcmQ6
# 输入邮箱授权码,这里之所以输入邮箱授权码而不是密码可能是因为SMTP是明文传输,为了保护密码所以使用邮箱授权码,实际上之前输入的用户名也不会传到服务器端中,应该是用于客户端验证登录的用户是谁,防止发信人伪造发信人信息
略
# 得到235 Authentication successful说明验证成功
235 Authentication successful
# 设置邮件发送方 mail from: <发件人邮箱>
mail from: <2498144289@qq.com>
# 得到250 OK 说明没有问题
250 OK
# 设置邮件接收方 rcpt to : <收件人邮箱>
rcpt to: <646462552@qq.com>
# 得到250 OK 说明没有问题
250 OK
# 输入data表明要发送邮件信息了
data
# 得到354 End data with <CR><LF>.<CR><LF>. 提示用户单独一行的.表示为结束
354 End data with <CR><LF>.<CR><LF>.
# 输入SMTP报文首部(可选)不输入的话会导致邮件信息不全,但邮件仍会发送到收件人
From: Huang
To: Wang
Subject: Happy
# 在报文首部之后紧接着一个空白行,然后输入以ASCII格式表示的报文体Hi, I am Huang
Good every
..
ABC
TTTT
.
# 在服务器接收到一个单独一行的.后,认为邮件内容结束,返回状态码,如果是250,表示发送成功
250 OK: queued as.
# 输入QUIT离开
QUIT
# 服务端返回221表示结束会话
221 Bye.
在邮箱中可以看到邮件已经成功到达,其中内容与在命令行时有所不同,第一行中“Hi, I am huHuang”,多出了“hu”,这是因为在telnet中输入信息通过退格键消除掉后只是在命令行中消失了,实际上内容仍然存在,即不能使用回车键来消除错误。
POP3
由于SMTP是一个“推”协议,即将数据发送到某个主机的协议,并不具备从某个主机上获得数据的功能。因此,当收件人想通过客户端来获得服务器中发送给自己的邮件时,是不能使用SMTP的。
POP3(第三版的邮局协议)用来将邮件从接收方的邮件服务器传送到接收方的用户代理。这是一个极为简单的邮件访问协议。
使用Telnet访问POP3服务器
# 通过telnet命令建立起一个POP3服务器的链接
telnet smtp.qq.com 110
# 接收到OK表示建立成功
+OK XMail POP3 Server v1.0 Service Ready(XMail v1.0)
# 输入user 用户名
user 2498144289@qq.com
# 接收到OK表示成功
+OK
# 输入pass 邮箱授权码
pass 略
# 接收到OK表示成功
+OK
# 输入list查看邮箱列表
list
# 接收到OK表示成功,并返回所有邮件的序号和长度
+OK
1 30505
2 8021
3 8021
4 64176
5 109297
6 14508
7 12820
8 14608
9 7189
...
# 通过retr来读取某个邮件
retr 1
# 接收到OK表示成功
+OK 30505
Received: from o2.ptr565.wandb.com (o2.ptr565.wandb.com [149.72.42.209])by newxmmxsza6-11.qq.com (NewMX) with SMTP id AC607444for <2498144289@qq.com>; Tue, 03 Jan 2023 19:43:06 +0800
X-QQ-mid: xmmxza6-11t1672746186tqq9z3msg
Sender: bounces+8555476-b12e-2498144289=qq.com@em3714.wandb.com
X-QQ-CSender: bounces+8555476-b12e-2498144289=qq.com@em3714.wandb.com
X-QQ-XMAILINFO: MXYxc+vhTT0ahmcsWylbFQztD+qE2zvqnbrlaDHrcRG/It9udGJPyghW/QNKWjx0zY5cdwm2BK97ZHOuf78SPu7QJQDi7sYPfAjAIXP9
...
# quit
quit
# +OK Bye
+OK Bye
电子邮件协议(SMTP协议,POP3协议)相关推荐
- SMTP 和 POP3 协议的区别和联系
SMTP(Simple Mail Transfer Protocol)和POP3(Post Office Protocol 3)是两种常用的电子邮件协议,用于发送和接收电子邮件.虽然它们都涉及到电子邮 ...
- java smtp pop3_手工体验smtp和pop3协议 邮件实现详解(二)
上篇博客我们简单介绍了电子邮件的发送和接收过程,对参与其中的邮件服务器,邮件客户端软件,邮件传输协议也有简单的介绍.我们知道电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递必须 ...
- 邮件协议SMTP、POP3和IMAP
邮件协议SMTP.POP3和IMAP SMTP (发送) POP(离线保存) IMAP(多端操作同一用户) 各种协议的host以及port 发送邮件 同一域下 不同域下 接收邮件 使用的是POP3协议 ...
- PHP+socket+SMTP、POP3协议发送、接收邮件
1.实现SMTP协议的类dsmtp.cls.php: <?php // 通过socket实现SMTP协议的功能 // version: 1.1 // author : DC ...
- 【Java】使用smtp和pop3协议,实现邮件收发
使用到的包: javax.mail-1.5.1.jar 发邮件的时候 - 向运维: 维护服务器linux - 索要: - smtp服务器地址, smtp.163.com - 发送邮件的端口号: 默认2 ...
- javamail - 协议SMTP\IMAP\POP3设置
资料来自:https://www.tutorialspoint.com/javamail_api/index.htm [SMTP - Simple Mail Transfer Protocol] Na ...
- JavaMail学习笔记(一)、理解邮件传输协议(SMTP、POP3、IMAP、MIME)
电子邮件需要在邮件客户端和邮件服务器之间,以及两个邮件服务器之间进行传递,就必须遵循一定的规则,这些规则就是邮件传输协议.SMTP协议定了邮件客户端与SMTP服务之间,以及两台SMTP服务器之间发送邮 ...
- 邮件协议SMTP/POP3/IMAP——应用层
一.SMTP协议 1.SMTP协议简介 SMTP称为简单邮件传输协议(Simple Mail Transfer Protocal),目标是向用户提供高效.可靠的邮件传输.它的一个重要特点是它能够在传送 ...
- 《计算机网络》——文件传输协议FTP、简单邮件传送协议SMTP、邮局协议POP3、网际报文存取协议IMAP、万维网和HTTP协议、超文本传输协议HTTP
文章目录 文件传输协议FTP FTP服务器和用户端 FTP工作原理 简单邮件传送协议SMTP 邮局协议POP3 网际报文存取协议IMAP 万维网和HTTP协议 超文本传输协议HTTP HTTP协议的特 ...
- 电子邮件相关_邮件传输协议简单了解
内容简述: 主要是SMTP和POP3/IMAP协议的一些介绍. 2.邮件传输协议: - 2.1 SMTP协议: ①SMTP协议 (Simple Mail Transfer Protocol) ...
最新文章
- ini文件怎么使用_ftp文件下载工具,ftp文件下载工具是怎么使用的?使用指南
- java线程间的通讯
- android的签名问题
- 关于C语言中递归的一点点小问题
- java 8是指什么_java中8个基本数据类型到底是指什么?是什么意思,有什么作用?我需要权威的回答,...
- 美团都在用的实时应用监控平台,到底有多好用?
- win2008删除计算机用户,Windws Srv 2008内置账户
- The Double-Checked Locking is Broken Declaration
- 引用数据类型Scanner,Random
- 韩国韩亚航空数万份乘客身份信息被泄露
- 寻求生态保护与矿产开发平衡点 青海给出“绿色方案”
- 【Music】Never took the time
- 百度云 api java_java实现百度云文字识别接口代码
- k8s中本地存储卷emptyDir、hostPath卷
- android listview 刷新 闪烁,listview刷新 怎样防止Listview刷新闪烁
- 天线匹配与人体之间的关系
- python单例模式例子_python单例模式实例分析
- js 将简体字转化成繁体字
- 字符分割函数strtok
- 2022凉茶市场份额
热门文章
- 朋友入职中软一个月(外包华为)就离职了,其原因。。。
- 阿里AI天池大赛-二手车交易价格预测-回归算法与模型融合
- python制作气温分布图_Python案例:查询城市天气并绘制最高气温与最低气温的折线图...
- latex 引用公式
- json字符串转list集合
- Python3 实现淘女郎照片爬虫
- Java实现单播,组播,广播
- python中的多行语句可以使用反斜杠来实现_Python中的多行语句可以使用反斜杠来表示。...
- 8266+DS3231时钟之语音MP3-TF-16P模块使用【五】
- python图书馆管理系统设计,千行代码带你学!