发送邮件
发送邮件使用SMTP协议【Simple Mail Transfer Protocol简单的邮件传输协议】,SMTP协议是SMTP客户端与SMTP服务器之间的通信协议。
python中发送邮件使用的模块有smtplib和email:
1.使用smtplib模块进行发送邮件;
2.使用email模块来添加发送的邮件内容。
1. smtplib模块
导入模块:import smtplib
1.1. 创建SMTP对象
smtplib.SMTP
和smtplib.SMTP_SSL
:均可以用来创建SMTP对象;smtplib.SMTP_SSL
:使用安全加密的SSL协议连接到SMTP服务器;smtplib.SMTP
:没有进行安全加密。
故若待测试邮箱不允许使用非SSL和非TLS频道通信时,则无法使用smtp.SMTP方式来创建客户端对象。
【查看邮箱的通信方式:邮箱设置菜单中,查看邮箱的接收服务器和发送服务器信息。】
如:腾讯企业邮箱接收服务器:imap.exmail.qq.com(使用SSL,端口号993)发送服务器:smtp.exmail.qq.com(使用SSL,端口号465)
smtplib.SMTP(host,port,local_hostname,timeout,source_address)
smtplib.SMTP_SSL(host, port, local_hostname, keyfile, certfile, timeout, source_address, context)
创建SMTP对象。
host:SMTP发送服务器主机
port:SMTP服务器端口号
1.2. SMTP对象操作
login(user, password, *, initial_response_ok=True)
SMTP对象登录
user:授权登录的用户名
password:授权登录的密码sendmail(from_addr, to_addrs, msg, mail_options=[], rcpt_options=[])
SMTP对象发送邮件
from_addr:发件人地址,字符串类型。
to_addr:收件人地址,包括收件人和抄送人。
多个收件人时to_addr参数为列表,单个收件人时to_addr参数可以为列表或字符串。
msg:要发送的信息quite()
终止SMTP会话
2. 发送邮件的实例
2.1. 添加邮件内容,包括收件人、抄送人、正文、附件
from email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.text import MIMETextfrom email.mime.image import MIMEImageimport osclass EmailContent: def __init__(self, senderAdr, emailSubject, toReceivers, ccReceivers): # 邮件对象 self.msg = MIMEMultipart() # 添加发件人头 self.msg['From'] = Heade