原标题:Python3之发送和读取邮件
01
发送邮件
发送邮件使用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 MIMEMultipart from email.header import Header from email.mime.text import MIMEText from email.mime.image import MIMEImage import os class EmailContent: def __init__(self, senderAdr, emailSubject, toReceivers, ccReceivers): # 邮件对象 self.msg = MIMEMultipart # 添加发件人头 self.msg['From'] = Header("测试" + "", 'utf-8') # 添加收件人 if isinstance(toReceivers, str): self.msg["To"] = toReceivers elif isinstance(toReceivers, list): self.msg['To