一、smtplib模块: 主要通过SMTP类与邮件系统进行交互。使用方法如下: 1.实例化一个SMTP对象: s = smtplib.SMTP(邮件服务地址,端口号) s = smtplib.SMTP_SSL(邮件服务地址,端口号) 2.登陆邮件,权限验证: s.login(用户名,密码) 3.发送邮件: s.sendmail(发件人邮箱,收件人邮箱,发送内容) 4.断开连接: s.close() 二、email模块: email模块:支持发送的邮件内容为纯文本、HTML内容、图片、附件。email模块中有几大类来针对不同的邮件内容形式,常用如下: MIMEText:(MIME媒体类型)内容形式为纯文本、HTML页面。 MIMEImage:内容形式为图片。 MIMEMultupart:多形式组合,可包含文本和附件。 每一类对应的导入方式: from email.mime.text import MIMEText from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart 三、MIMEText: MIMEText(msg,type,chartset) msg:文本内容 type:文本类型默认为plain(纯文本) 发送HTML格式的时候,修改为html,但同时要求msg的内容也是html的格式。 chartset:文本编码,中文为“utf-8” # 构造TEXT格式的消息 msg = MIMEText("hello.text","plain","utf-8") msg["Subject"] = "xxxxx" msg["From"] = "xxxx" msg["To"] = "xxxx" #发送以上构造的邮件内容要使用as_string将构造的邮件内容转换为string形式。 s.sendmail("xxx","xxx",msg.as_string) 四、MIMEImage、MIMEMultipart: msg = MIMEMultipart() #实例化一个文本对象 msg_sub = MIMEText("hello.text","plain","utf-8") #将text消息添加到MIMEMultipart中,作为邮件正文。 msg.attach(msg_sub) #图片作为附件 import os img_datas = open(os.getcwd()+ "/reports/xxxx.png","rb").read() msg_img = MIMEImage(img_data) msg_img.add_header('Content-Disposition','attachment', filename = "xxxx.png" ) msg_img.add_header('Content-ID','<0>') #将图片添加到MIMEMultiplart中,作为附件发送。 msg.attach(mag_img)