首页 > 编程语言 > 详细

python 发送邮件----正文内容:文字、表格、附件

时间:2019-03-14 22:00:46      阅读:338      评论:0      收藏:0      [点我收藏+]

python 发送邮件----正文内容包含:文字、表格、附件

python 发送邮件----正文内容包含:文字、表格、附件

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( "发送失败")

技术分享图片

 

原文地址https://blog.csdn.net/u010199776/article/details/76087721

python 发送邮件----正文内容:文字、表格、附件

原文:https://www.cnblogs.com/111testing/p/10533727.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!