这两天用163邮箱做了批量发送的邮件的小工具,但奈何测试了几波后又发送不成功了,经查报错代码的解释如下:
what?当我发了垃圾邮件,经过咨询和一番折腾,终于知道,原来网易邮箱就是对邮件的发送规则要求比较严格,然尔QQ邮箱只是数量限制,好像是每天发100封,对于多数人来说,一天100封也差不多够了,不行就换个邮箱,接下给大家共享下QQ邮件群发的代码:
import smtplib#用于邮件的发信动作
from email import encoders
from email.header import Header#用于构建邮件头
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText#用于构建邮件内容
from email.utils import parseaddr,formataddr
from email.mime.application import MIMEApplication
import pandas as pd
import numpy as np
df=pd.read_excel(r"D:\到货情况\供应商邮件清单.xlsx",sheet_name=0,header=0)
df.head(2)
wenjianname=df["文件名"]
youjianadd=df["邮件地址"]
n=-1
smtp_server="smtp.qq.com"#发信服务器
asender="376453131@qq.com"#发件人地址
from_addr=input("请输入登录邮箱:")
password=input("请输入邮箱授权码:")#邮件授权码
text=input("请输入邮件内容:")#邮件正文
for i in wenjianname:
n=n+1
areceiver=df["邮件地址"][n]#收件人地址
acc="376453131@qq.com"#抄送人地址
asubject=i#邮件主题
msg=MIMEMultipart()#邮件设置
msg["Subject"]=asubject
msg["to"]=areceiver
msg["cc"]=acc
msg["from"]="宋小玲"
msg.attach(MIMEText(text,"plain","utf-8"))#添加邮件正文 #添加附件
#注意,这里的文件路径是分隔线
xlsxpart=MIMEApplication(open('D:/到货情况/生成文件/'+i,'rb').read())
xlsxpart.add_header("Content-Disposition","attachment",filename=i)
msg.attach(xlsxpart)
#设置邮箱服务器地址及端口
server=smtplib.SMTP_SSL(host="smtp.qq.com")
server.connect(smtp_server,465)
#server.set_debuglevel(1)
#登录邮箱
server.login(from_addr,password)
#发送邮件
server.sendmail(from_addr,areceiver.split(",")+acc.split(","),msg.as_string())
#断开服务器
server.quit()
print("亲爱的,我一共发送了{}封邮件,感谢使用!".format(n+1))
文中的供应商邮件地址如下格式,关于如何快速获取附件名称,在上一篇博客中已经写过了,不会的同学可以去上一篇博客查阅。
来源:oschina
链接:https://my.oschina.net/u/4493568/blog/3217502