理解邮件推拉SMTP&POP3

【前言】作为一名测试小白,如果有天被问到:测试邮件发送、接收?
这种该如何测呢?那首先,结合python来理解下邮件推拉协议吧
【正文】

电子邮件协议及其通信实体

SMTP:邮件发送协议;
POP3:邮件拉取协议(当然,现在都是IAMP用的较多,POP3是单向的);
理解推拉协议:
上图中,Alice要发送邮件,他在用户代理(可以理解为电脑里的Foxmail应用程序)中编辑好邮件后,通过SMTP协议将邮件发送到他的邮件服务器,此邮件被加入到邮件服务器的发送邮件队列中,然后Alice的邮件服务器再通过SMTP协议将此邮件发送到Bob的邮件服务器中。当Bob打开用户代理,用户代理和Bob的邮件服务器建立好TCP连接后,POP3按照3个阶段开始工作:
1、特许阶段:用户代理发送用户名和口令--鉴别用户;
2、事务处理阶段:用户代理取回报文;还可以对报文做删除标记,取消报文删除标记,以及获取邮件的统计信息;
3、更新阶段:结束该POP3会话;这个时候该邮件服务器删除那些被标记的删除的报文;
在POP3事务处理的过程中,用户代理发出指令,服务器对每个指令做出回答;

看看python中怎么实现邮件推拉的:
1.发送邮件:
Python对SMTP支持有两个模块:email负责构造邮件,smtplib负责发送邮件
from email.mime.text import MIMEText
import smtplib
msg = MIMEText('hello, send by Python...', 'plain', 'utf-8')
from_addr = input('From: ') //输入Email地址和口令
password = input('Password: ')
to_addr = input('To: ') //输入收件人地址
smtp_server = input('SMTP server: ') //输入SMTP服务器地址
server = smtplib.SMTP(smtp_server, 25) # SMTP协议默认端口是25
server.set_debuglevel(1) //打印出和SMTP服务器交互的所有信
server.login(from_addr, password)
server.sendmail(from_addr, [to_addr], msg.as_string()) //可以一次发给多个人,所以传入一个list
server.quit()

2.收取邮件:
Python内置一个poplib模块,实现了POP3协议,可用来收邮件。POP3协议收取的不是一个已经可以阅读的邮件本身,而是邮件的原始文本,这和SMTP协议很像,SMTP发送的也是经过编码后的一大段文本。要把POP3收取的文本变成可以阅读的邮件,还需要用email模块提供的各种类来解析原始文本,变成可阅读的邮件对象。
所以,收取邮件分两步:
第一步:用poplib把邮件的原始文本下载到本地;
第二步:用email解析原始文本,还原为邮件对象;
import poplib
from email.parser import Parser
from email.header import decode_header
from email.utils import parseaddr
email = input('Email: ')//输入邮件地址, 口令和POP3服务器地址
password = input('Password: ')
pop3_server = input('POP3 server: ')
server = poplib.POP3(pop3_server)//连接到POP3服务器
server.set_debuglevel(1)
server.user(email)//身份认证
server.pass_(password)
print('Messages: %s. Size: %s' % server.stat())//stat()返回邮件数量和占用空间
resp, mails, octets = server.list()// list()返回所有邮件的编号
index = len(mails)//获取最新一封邮件, 注意索引号从1开始
resp, lines, octets = server.retr(index)
msg_content = b'\r\n'.join(lines).decode('utf-8')//lines存储了邮件原始文本的每一行
msg = Parser().parsestr(msg_content)//解析出邮件,这里就不细说
server.dele(index)//可以根据邮件索引号直接从服务器删除邮件
server.quit()//# 关闭连接

好了,理解了简单的协议,如何测试邮件推拉整体功能呢?
明确要测什么? ---smtp协议,pop3协议,客户端,邮件服务器?
首先排除掉协议和服务器,协议用了这么久自然有用户来检验,而邮件服务器,现在我们一般使用的都是三方提供的,菜鸟本鸟也并没有接触过服务器测试==。所以下面就说下关于邮件推拉整体的功能测试一些想法吧(尽管不会有这种问题...

a. 冒烟测试主功能:能编辑信息、能发送信息、能收到信息;
b.界面友好,信息完善(编辑信息界面、查看信息界面--发件人、收件人、主题、内容)
c.功能有哪些分类呢?这里考虑等价类:
邮件内容:文本、链接、图片、附件;
收件人:一个、多个;
主题:中英文、特殊字符、表情符;
支持邮件处理:增删改查;刷新;转发;
d.功能支持的上限?考虑边界值:
内容超长?附件最多数量?文件大小?图片大小?收件人数量?附件有效存储期?邮件服务器容量?
e.友好提示:为空提示?失败成功提示?非法操作提示?
d.其他:
安全性考虑,传输加密;
时效性考虑,实时收发;
用户认证,登陆有效期;
稳定性,大用户量并发;
需求性,满足客户需求;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容