Copyright (C) 2008 PLENWARE Corporation
All rights reserved.
RELEASE INFORMATION
Project: Email
Author : Tao Xia/Thor Group
Version: v1.0
Date: 2008-10-13
[Notes] 1.Any quotation or copy of this file please reserve the original author information.
2.The contents that quoted in other places will marked as *-------------(beginning) and --------------*(Ending)
[Description] The basic knowledge of pop3 and smtp protocol. Introduction of the commands in POP3 and SMTP.
(以下演示事例都以163.com 网易邮箱为例)
CATALOGUE
.......1.EMAIL
(1)email 的明文结构
(2)email的源码分析
.......2.POP3协议
(1)使用telnet 连接pop3
(2)POP3协议的状态和相关命令
(3) POP3协议的解析
.......3.SMTP协议
(1)用telnet 连接SMTP服务器
(2)SMTP基本发送流程和相关命令
(3)SMTP客户端的编写
........4.结束语
........附录一
1.Email
=====================================
(1)email 的明文结构
首先认识一封相对完整的email的结构。以下是网页上得到的内容:
*---------------------------------------------------------
日 期: 2008-10-10 18:14:12
发件人: zengbenyuan <zengbenyuan@126.com>
收件人: "tommy_mail@163.com" <tommy_mail@163.com>
抄送人: (无)
主 题: Helloworld
附 件: Debian Package.txt(8.19K)
(正文)
Hi Tommy,
This is a mail for testing.
---------------------------------------------------------*
一封邮件主要分为头部(Header fields)和 主体(Body),头部主要包含邮件的附属信息,如时间、发件人、收件人、主题,主体主要包含正文、正文格式、以及附件信息
(2)email的源码分析
该邮件的源码包含以下部分:(完整源码参看附件一)
Received: (由邮件服务器自动添加的,与邮件服务器、日期相关的信息)
Date:(邮件发送者发送时的时间信息,格式通常为:Fri, 10 Oct 2008 18:14:12 +0800 (CST))
From:(邮件来自于哪个发送者,格式通常为:"zengbenyuan" <zengbenyuan@126.com>)
To:(邮件接收者,格式于发送者相同)
Subject:(邮件主题,部分邮件会将主题以64位编码形式加密,形式如=?gbk?B?z8TMzg==?= , 以=?开头,以?=结束)
Content-Type:内容类型,用于指定消息的类型(常用类型见 参考文档 Reference/MIME TYPE.html)
boundary=“”:划分多部分邮件的边界,通常有无边界、一种边界、两种边界三种情况。
Message-ID:(自动生成,由邮件服务器提供的该邮件的ID号。注意与常说的邮件的UID不是同一ID)
MIME-Version:(MIME的使用版本,现在通常为1.0)
(信头中以X开头的部分是邮件服务器自定义的信息段)
X-Originating-IP:(邮件发送者原始的IP地址)
X-Priority:(邮件的优先级)
X-Mailer:(邮件服务器信息)
X-Coremail-Antispam:(经过coremail邮件系统MTA投递时自动生成的反垃圾邮件信息)
------=_Part_367655_28062751.1223633652250 |
Content-Type: multipart/alternative; |----> 这一部分表明如果邮件是多重部分的,定义两个边界,一个区分文本,一个区分附件
boundary="----=_Part_367657_22083146.1223633652250" |
------=_Part_367657_22083146.1223633652250 |
Content-Type: text/plain; charset=gbk |
Content-Transfer-Encoding: 7bit |----> 这一部分是正文的内容,它表明正文是text/plain类型,gbk字符集,用7bit编码方式
|
Hi Tommy, |
This is a mail for testing. |
------=_Part_367657_22083146.1223633652250 |
Content-Type: text/html; charset=gbk |
Content-Transfer-Encoding: 7bit |
|------>这一部分表明是html内容,类型为text/html,gbk字符集,7bit编码
<div>Hi Tommy,<br><br> This is a mail for testing.<br></div><div> </div> |
------=_Part_367657_22083146.1223633652250-- |--->文本内容结束
------=_Part_367655_28062751.1223633652250 |------>这里的边界和上面文本内容的边界是不一样的,注意区分,第一次以“--”开头出现这个边界表示附件
Content-Type: image/jpeg; name="plenware.jpg" | 内容从此开始
Content-Transfer-Encoding: base64 |
Content-Disposition: attachment; filename="plenware.jpg" |
|-------->这一部分表明是附件,从Content-Disposition: attahment 看出
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAd | 附件名称是plenware.jpg, 采用64位编码,正文是一段编码后的内容
Hx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5Ojf/2wBDAQoKCg0MDRoPDxo3JR8lNzc3Nzc3 |
Nzc3Nzc3Nzc3N......== |
------=_Part_367655_28062751.1223633652250-- |------->以“--”结束,表示附件部分结束,整个源码也结束于此
从源码开头到X-Coremail-Antispam段结束为头部信息,其余以--开始 所囊括的部分都是主体信息。
大家可以从源码看到头部信息中大部分的信息。body部分由于是进行了编码,所以直接阅读通常是不行的。
更多的关于mail的信息可参看 http://en.wikipedia.org/wiki/Email
2.POP3协议
=====================================
POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC 1939 定义(见 Reference/rfc1939 pop3.html)。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。
(1)使用telnet 连接pop3
最直观的了解什么是POP3,我觉得采用telnet的方式用pop3连接到邮件服务器,进行邮件的接收是最有效的。
打开终端,(C:client, S:Server)
*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
C: telnet pop.163.com 110 (用telnet方式连接163的pop3服务器,pop3协定端口为110)
S: Trying 202.108.5.100...
Connected to pop3.163.split.netease.com.
Escape character is '^]'.
+OK Welcome to coremail Mail Pop3 Server (163coms[3d8c1fa079729fb6acc588e66d30360es]) (服务器通常开头返回+OK表示正确的回应,+ERR表示所发命令有误)
C: USER ***** (***处输入你的邮件用户名)
S: +OK core mail (表示接受)
C: PASS ***** (***处输入密码,这里都是明文显示)
S: +OK 5 message(s) [9782 byte(s)] (这里表示服务器接受该帐户,服务器上对应有5封邮件,总大小9782个字节)
C:LIST (LIST 命令列出每一封邮件的信息,己每封邮件对应的ID号和大小)
S: +OK 5 9782
1 1298
2 1311
3 1224
4 1312
5 4637
.
C: TOP 1 0 (格式 TOP num 0, num代表邮件ID号,返回该邮件的头部信息)
S:+OK 1298 octets (服务器接受)
Received: from smtp.163.com (unknown [221.10.25.6]) (返回的相关内容)
by smtp1 (Coremail) with SMTP id C9GowLCLsyoRy_JI5Ci2Mg==.42306S2;
Mon, 13 Oct 2008 12:14:10 +0800 (CST)
Date: Mon, 13 Oct 08 12:14:09 +0800 (CST)
From: tommy_mail@163.com
To: tommy_mail<tommy_mail@163.com>
Subject: @@!$$%^&
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=-plenware_alt_"
X-Coremail-Antispam: 1Uf129KBjDUn29KB7ZKAUJUUUUUYxn0WfASr-VFAUDa
没有合适的资源?快使用搜索试试~ 我知道了~
POP&SMTP 学习笔记
共5个文件
html:4个
txt:1个
2星 需积分: 9 50 下载量 113 浏览量
2009-01-05
13:06:37
上传
评论
收藏 54KB 7Z 举报
温馨提示
POP&SMTP 学习笔记 MIME TYPE rfc1939--POP3 RFC2045( Mutipurpose Internet Mail Extensions(MIME) Part One telnet操作 smtp pop
资源推荐
资源详情
资源评论
收起资源包目录
POP&SMTP 学习笔记.7z (5个子文件)
POP&SMTP 学习笔记
reference
telnet操作 smtp pop.html 42KB
RFC2045( Mutipurpose Internet Mail Extensions(MIME) Part One.html 88KB
rfc1939--POP3.html 59KB
MIME TYPE.html 44KB
POPSMTP Log.txt 21KB
共 5 条
- 1
资源评论
- MOOR2122012-06-10资源不是太好,就是几个英文网页
- david_08382012-03-27全是链接。不过里面那个手动连接smtp服务器,发送邮件到是有点意思
ShevaMa
- 粉丝: 31
- 资源: 28
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功