Send Email in Python
Published:
This is my personal notes for sending email in python.
Introduction
python 发送邮件有多种方式,其中最常用的有smtp方式和yagmail, 下面对yagmail发邮件的方法进行介绍
实例展示
def content_trans(gaps):
d={}
keys=sorted(gaps.keys())
trans_keys=list(map(lambda x: transdic.get(x),keys))
values=[gaps[k] for k in keys]
d['指标'],d['前天值'],d['昨天值'],d['变化']=trans_keys,[u[0] for u in values],[u[1] for u in values],[u[2] for u in values]
df=pd.DataFrame(d)
df=df[['指标','前天值','昨天值','变化']]
return df
def merge_gaps():
df1=content_trans(gap_s2lpre_overall)
df2=content_trans(gap_s2lpre_avg)
df3=content_trans(gap_s2lpre_CTR)
return pd.concat([df1, df2, df3], axis=0).to_html(index=False) #将df转成html
def send_mail():
# 链接邮箱服务器
yag = yagmail.SMTP(user="xxxxxxx@qq.com", password="daqshioedqimbxxx", host='smtp.qq.com') #注意这里的password不是QQ密码,而是开启smpt服务后获得的授权码
# 邮箱正文
html=merge_gaps()
contents = ['展现指标',html]
# 发送邮件
yag.send('xxxxx@qq.com', 'subject', contents)
# 多用户 发送邮件
# yag.send(['aa@126.com', 'bb@qq.com', 'cc@gmail.com'], 'subject', contents)
这里content的内容可以是list存储的普通字符串文本, 也可以使一个或者多个html文件
html可以从df很方便的转换, 转换后变成html的表格形式