这个代码可以实现qq邮箱的带附件群发,但是163邮箱会被退信。
显示:
有办法解决吗?
from email.header import Header
from email.mime.text import MIMEText
import csv
import smtplib
import datetime
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
from email.mime.image import MIMEImage
msg = MIMEMultipart()
from_addr = 'xx@qq.com'
password = 'xx'
smtp_server = 'smtp.qq.com'
data = [['xx','xx'],['xx','xx']]
time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
text = '收到了没?'
msg1 = MIMEText(text,'plain','utf-8')
msg.attach(msg1)
file1 = 'D:\\test\\img.juimg.jpg.jfif'
image = MIMEImage(open(file1,'rb').read())
image.add_header('Content-ID','<image1>')
image["Content-Disposition"] = 'attachment; filename="earth.jpg"'
msg.attach(image)
doc_file = open(r'D:\\test\\年度目标清单.docx', 'rb').read()
doc = MIMEText(doc_file, 'base64', 'gb2312')
doc["Content-Type"] = 'application/octet-stream'
doc.add_header('Content-Disposition', 'attachment', filename='年度目标清单.docx')
msg.attach(doc)
with open('to_addrs.csv','w',newline='') as f :
writer = csv.writer(f)
for row in data:
writer.writerow(row)
with open('to_addrs.csv','r') as f :
reader = csv.reader(f)
for row in reader:
to_addrs=row[1]
msg['From'] = Header(from_addr)
msg['To'] = Header(to_addrs)
msg['Subject'] = Header('尝试能否发送')
msg['time'] = Header(time,'utf-8')
server = smtplib.SMTP_SSL(smtp_server)
server.connect(smtp_server,465)
server.login(from_addr, password)
server.sendmail(from_addr,to_addrs,msg.as_string())
server.quit()
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。