前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 发送邮件(文字、表格、附

python 发送邮件(文字、表格、附

作者头像
py3study
发布2020-01-06 11:34:19
2.2K0
发布2020-01-06 11:34:19
举报
文章被收录于专栏:python3

import pandas as pd import smtplib   from email.mime.text import MIMEText   from email.mime.multipart import MIMEMultipart filename='C:\\Users\\thinkpad\\Desktop\\1.xlsx' #附件地址 def send_mail(to_list,sub,context,filename):  #to_list:收件人;sub:主题;content:邮件内容     mail_host="smtp.163.com"  #设置服务器     mail_user="XXXX@163.com"    #用户名     mail_pass="xxxxxx"   #口令      mail_postfix="163.com"  #发件箱的后缀     me="服务器"+"<"+mail_user+"@"+mail_postfix+">"   #这里的“服务器”可以任意设置,收到信后,将按照设置显示     msg = MIMEMultipart() #给定msg类型     msg['Subject'] = sub #邮件主题     msg['From'] = me     msg['To'] = ";".join(mailto_list)      msg.attach(context)     #构造附件1     att1 = MIMEText(open(filename, 'rb').read(), 'xls', 'gb2312')     att1["Content-Type"] = 'application/octet-stream'     att1["Content-Disposition"] = 'attachment;filename='+filename[-6:]#这里的filename可以任意写,写什么名字,邮件中显示什么名字,filename[-6:]指的是之前附件地址的后6位     msg.attach(att1)     try:           s = smtplib.SMTP()           s.connect(mail_host)  #连接smtp服务器         s.login(mail_user,mail_pass)  #登陆服务器         s.sendmail(me, mailto_list, msg.as_string())  #发送邮件         s.close()          return True       except Exception:             return False   if __name__ == '__main__':       mailto_list=["zhanghaili@autoht.com"]     a=pd.DataFrame({'数列1':(1,1,1,1),'数列2':(2,2,2,2),'数列3':(3,3,3,3),'数列4':(4,4,4,4)})     a.index={'行1','行2','行3','行4'} #这里dataframe类型a就是要输出的表格     sub="test"     d='' #表格内容     for i in range(len(a)):         d=d+"""         <tr>           <td>""" + str(a.index[i]) + """</td>           <td>""" + str(a.iloc[i][0]) + """</td>           <td width="60" align="center">""" + str(a.iloc[i][1]) + """</td>           <td width="75">""" + str(a.iloc[i][2]) + """</td>           <td width="80">""" + str(a.iloc[i][3]) + """</td>         </tr>"""     html = """\ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <body> <div id="container"> <p><strong>测试程序邮件发送:</strong></p> <div id="content">  <table width="30%" border="2" bordercolor="black" cellspacing="0" cellpadding="0"> <tr>   <td width="40"><strong>统计</strong></td>   <td width="50"><strong>数列1</strong></td>   <td width="60" align="center"><strong>数列2</strong></td>   <td width="50"><strong>数列3</strong></td>   <td width="80"><strong>数列4</strong></td> </tr>"""+d+""" </table> </div> </div> </div> </body> </html>       """     context = MIMEText(html,_subtype='html',_charset='utf-8')  #解决乱码     if send_mail(mailto_list,sub,context,filename):           print ("发送成功")       else:  

        print( "发送失败")

程序运行成功后:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档