MTP:
即简单邮件传输协议,他是一组用于从源地址到目的地址传输邮件的怪饭
通过他来控制邮件的中转方式,SMTP,协议属于TCP/ip协议,他帮助每台计算机在发送
或中转信件时,找到下一个目的地,SMTP服务器就是遵循SMTP协议的发送邮件服务器
SMTP认证:
SMTP认证,简单的说就是要求必须提供了账户和密码之后才可以登录SMTP服务器,
这就使得那些垃圾邮件的散播者无可乘之机
stmplib模块
Python内置对SMTP的支持,可以发送纯文本邮件,HTML邮件以及带附件的邮件
Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责
发送邮件
注意:在使用前需要开启SMTP服务(如图163邮箱的设置里面;)
什么是POP3、SMTP和IMAP?
http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html
案例:使用163邮箱结合smtp模块发送邮件准备工作
注意:在开始前要先开启SMTP服务
1 import smtplib #发送邮件的模块 2 from email.mime.text import MIMEText #定义邮件的内容 3 from email.header import Header #定义邮件的标题 5 #开启SMTP服务 6 #邮件的服务端,在邮箱设置里面可以查看的 7 smtpserver='smtp.163.com' 9 #邮箱的账户和密码(写自己的邮箱和授权码) 10 usr='.......@163.com' 12 #密码这里输入授权码 13 password='.......' 15 #发送和接受的邮箱 16 sender='.......com' 17 receive='.......com' 19 #邮件的主题和内容 20 subject="web 自动化测试报告" 21 content='<html><h1 style="color:red">天气很好,夜色很美</h1></html>' 23 #邮件正文 24 msg=MIMEText(content,'html','utf-8') 25 msg['Subject']=Header(subject,'utf-8') 26 msg['From']='......@163.com' 27 msg['To']='.......com' 29 #SSL协议端口号要使用465 30 smtp=smtplib.SMTP_SSL(smtpserver,465) 32 #向服务器标识用户身份 33 smtp.helo(smtpserver) 35 #服务器返回结果确认 36 smtp.ehlo(smtpserver) 38 #登录邮箱服务器用户名和密码 39 smtp.login(usr,password) 40 print("email send") 41 smtp.sendmail(sender,receive,msg.as_string()) 42 smtp.quit() 43 print("send email end!!!")
向多人发送邮件:
代码和上述的基本一致,只是收件人,不一样了,多了一些收件人,代码具体的不同点,请参考如下的代码;
1 import smtplib #发送邮件的模块 2 from email.mime.text import MIMEText #定义邮件的内容 3 from email.header import Header #定义邮件的标题 4 5 #开启SMTP服务 6 #邮件的服务端,在邮箱设置里面可以查看的 7 smtpserver='smtp.163.com' 8 9 #邮箱的账户和密码(写自己的邮箱和授权码) 10 usr='********@163.com' 11 12 #密码这里输入授权码(输入自己的) 13 password='******' 14 15 #发送和接受的邮箱 16 sender='********@163.com' 17 receives=['*******.com','********@126.com'] 18 19 #邮件的主题和内容 20 subject="web 自动化测试报告" 21 content='<html><h1 style="color:red">天气很好,夜色很美</h1></html>' 22 23 #邮件正文 24 msg=MIMEText(content,'html','utf-8') 25 msg['Subject']=Header(subject,'utf-8') 26 msg['From']='********@163.com' 27 msg['To']=','.join(receives) 28 29 #SSL协议端口号要使用465 30 smtp=smtplib.SMTP_SSL(smtpserver,465) 31 32 #向服务器标识用户身份 33 smtp.helo(smtpserver) 34 35 #服务器返回结果确认 36 smtp.ehlo(smtpserver) 37 38 #登录邮箱服务器用户名和密码 39 smtp.login(usr,password) 40 print("email send") 41 smtp.sendmail(sender,receives,msg.as_string()) 42 smtp.quit() 43 print("send email end!!!")