发邮件是一种很常见的操作,本篇主要介绍一下如何用python实现自动发件。
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
最终实现