发邮件是一种很常见的操作,本篇主要介绍一下如何用python实现自动发件。
@H_403_3@import smtplib
from email.mime.text MIMEText
from email.mime.multipart MIMEMultipart
from email.header Header
from email.mime.image MIMEImage
time
mail_host="smtp.126.com"
mail_user=xxx@126.com
mail_pass=******#注意如果邮箱开启了授权码,此处要填写授权码,否则会报smtplib.SMTPAuthenticationError: (535,b'Error: authentication Failed')
sender=
receiver = ['邮箱1',邮箱2']群发邮件
for i in range(n):自定义循环发多少遍
try:
message = MIMEMultipart()
message[From"] = Header(sender)
message[To"] = ,'.join(receiver)
message[Subject"] = Header(主题",1)">utf-8").encode()主题
message.attach(MIMEText(正文plain"))正文
"""
定附件
"""
att = MIMEText(open(rC:\Users\Administrator\Desktop\1.txt').read(),1)">base64)
att[Content-Typeapplication/octet-stream
att.add_header(Content-Dispositionattachment1.txt")这一步可避免文件不能正常打开
message.attach(att)
构造图片(以附件形式上传)
image = MIMEImage(open(rC:\Users\Administrator\Desktop\1.jpgrb).read())
image.add_header(Content-ID<image1>')可避免图片不能正常打开
image[attachment; filename="picture.jpg"
message.attach(image)
发送邮件
smtp = smtplib.SMTP_SSL(host=mail_host)
smtp.connect(host=mail_host,port=465)
smtp.login(mail_user,mail_pass)
smtp.sendmail(sender,message['].split(),message.as_string())
print(在%s第" % ctime(),str(i+1),1)">封邮件发送)
smtp.quit()
except smtplib.SMTPException as e:
raise e
最终实现