用python快速群发邮件

最近要通过邮件群发一个通知,正好之前看到过python发邮件的,就试了一把,还挺方便的

可以自由的写正文,摘要,加附件

一.配置邮箱第三方使用

我的是扣扣邮箱,详情见

  •  
https://jingyan.baidu.com/article/fedf0737af2b4035ac8977ea.html

示例如下,其他邮箱类似

点击设置

点击账户

用python快速群发邮件_第1张图片

点击开启

用python快速群发邮件_第2张图片

验证手机

用python快速群发邮件_第3张图片

记住授权码

用python快速群发邮件_第4张图片

二.代码

1.设置发件人邮箱、邮箱授权码、收件人邮箱

import smtplib
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.mime.multipart import MIMEMultipart
import pandas as pd
#发件人邮箱
sender="[email protected]"
#服务器授权码
password="vvvvvvvvvvvvv"
#服务器地址,这里是QQsmtp服务器
mail_host='smtp.qq.com'
#receivers是收件人邮箱,可填写多个,以列表形式保存
#可通过excel读取邮件地址
data=pd.read_excel('emaildata.xlsx')
receivers_data=data.iloc[:,1]
receivers=receivers_data.tolist()

2.设置email信息

msg代表邮件本身,可以往里面添加文本、图片、附件等

#设置email信息
msg=MIMEMultipart('related')

添加邮件主题,发件人

#写邮件主题
msg["Subject"]='关于xxxxxx的通知'
msg["From"]=sender

添加邮件正文

#邮件正文
msg_content="大家好,这是xxxxx通知,详情见附件,强调几点:\n " \
            "1.\n" \
            "2.\n" \
            "3.\n" \
            "4."
msg.attach(MIMEText(msg_content,'plain','utf-8'))

添加附件(其实就是再加上一个MIMEText)可以添加文档或者图片,

word文档为例

#添加文档附件就是再加上一个MIMEText
mime=MIMEText(open(r'关于xxxxxx的通知.doc','rb').read(),'base64','utf-8')
#给附件加上必要的头信息
mime.add_header('Content-Disposition','attachment',filename=r'关于xxxx的通知.doc')
#把上面附件添加到MIMEMultipart
msg.attach(mime)

图片为例

#添加图片附件就是再加上一个MIMEImage
mine=mimeMIMEImage(open('test.jpg','rb').read(),'base64')
#给附件加上必要的头信息
mime.add_header('Content-Disposition','attachment',filename='test.jpg')
#把上面附件添加到MIMEMultipart
msg.attach(mime)

3.登陆并发送邮件


#登录并发送邮件
try:
    #QQsmtp服务器的端口号为465或者587
    s=smtplib.SMTP_SSL('smtp.qq.com',465)
    s.set_debuglevel(1)
    s.login(sender,password)
    #给receivers列表中的地址逐个发邮件
    for item in receivers:
        msg['To']=to=item
        s.sendmail(sender,to,msg.as_string())
        print("send to %s has succeed"%item)
    s.quit()
    print('send to all succeed!')
except smtplib.SMTPException as e:
    print("failed for %s"%e)

三、效果

用python快速群发邮件_第5张图片 

用python快速群发邮件_第6张图片

参考资料:https://zhuanlan.zhihu.com/p/89868804

感兴趣的朋友可公众号后台回复:邮件 获取完整的代码玩玩。 

用python快速群发邮件_第7张图片

你可能感兴趣的:(Python)