发送邮件(用代码模拟邮箱服务器发送邮件)
1.导入模块和包,分别是邮件发送服务器模块、邮件对象模块、邮件标题包、邮件内容包
import smtplib # 邮件发送服务器 from email.mime.multipart import MIMEMultipart # 创建一个邮件对象 from email.header import Header # 邮件标题包 from email.mime.text import MIMEText # 邮件内容包
2.用函数封装功能:发邮件
包含:发送人、接收人、主题、内容、附件
3.添加附件时注意:
a. 将附件转成base64编码格式
b.对附件的中文件名进行gbk编码
代码如下:
# 添加邮件附件 email.attach(content) if files: for file in files: with open(file, rb) as f: file_name = file.rfind(/) display_filename = file[file_name + 1:] if file_name != -1 else file # 将附件转成base64编码格式 att = MIMEText(f.read(), base64, utf-8) # 设置附件类型 通知服务器这是附件 att["Content-Type"] = application/octet-stream # 设置附件的文件名称,告诉服务器附件的文件名称 并显示在邮件中,并对附件的中中文件名gbk编码 att.add_header(Content-Disposition, attachment, filename=(gbk, , os.path.basename(display_filename))) # 将附件附加到 邮件对象 email.attach(att)