zoukankan      html  css  js  c++  java
  • python中发送邮件各种问题

    其实问题主要集中的QQ企业邮箱中,特别坑爹。。。代码如下:

    from email.mime.multipart import MIMEMultipart
    from email.mime.base import MIMEBase
    from email.mime.text import MIMEText
     
    # python 2.3.*: email.Utils email.Encoders
    from email.utils import COMMASPACE,formatdate
    from email import encoders
     
    import os
    import datetime
    
    uploadlogPath = "/home/harklee/shell/data"   
    curDate = datetime.datetime.now()
    curDateFormat = curDate.strftime("%Y-%m-%d")
    lastDate = curDate + datetime.timedelta(days = -1)
    lastDateFormat = lastDate.strftime("%Y-%m-%d")
    server = {"name":"smtp.exmail.qq.com", "user":"xx@xx.com", "passwd":"password"}   #注意,QQ企业邮箱中, user必须是全称的帐号,就是要带上@后缀,个人邮箱则不需要 name是smtp的地址
    fro = "xx@xx.com"   #发件人邮箱
    to = ["xx@xx.com","xxx@qq.com"]   #收件人邮箱
    subject = "数据每日日报"     #发送标题
    text = "数据每日日报,目前因为数据体系还没有开始搭建,所以指标很简单,目前为两分部,第一部分是建议运营指标,第二部分是接口监测指标,压缩文件是以日志日期命名的:
    
    运营指标:
    1) 当天去重后的imei数据,格式是yyyy-MM-dd_imei.log 
    2) 当天去重后的imei_app数据,格式是yyyy-MM-dd_app.log 
    
    api接口监测指标 
     1)每小时的数据流量行数 格式是yyyy-MM-dd_hour_line.log 
     2)监测每秒的最大并发数 格式是yyyy-MM-dd_second_max_line.log"  #发送内容
    files = [uploadlogPath+"/"+lastDateFormat+".tar.gz"]   #要发送的附件啦
    #print files
     
    #server['name'], server['user'], server['passwd']
    def send_mail(server, fro, to, subject, text, files=[]): 
        assert type(server) == dict 
        assert type(to) == list 
        assert type(files) == list 
     
        msg = MIMEMultipart(_charset='utf-8')   #这里注意编码
    	
        msg['From'] = fro 
        msg['Subject'] = subject 
        msg['To'] = COMMASPACE.join(to) #COMMASPACE==', ' 
        msg['Date'] = formatdate(localtime=True) 
        msg.attach(MIMEText(text,_charset='utf-8'))    #这里也要注意编码
     
        for file in files: 
    		part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data 
    		part.set_payload(open(file,'rb').read())
    		encoders.encode_base64(part) 
    		part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file)) 
    		msg.attach(part) 
     
        import smtplib 
        smtp = smtplib.SMTP(server['name']) 
        smtp.login(server['user'], server['passwd']) 
        smtp.sendmail(fro, to, msg.as_string()) 
        smtp.close()
    
    send_mail(server,fro,to,subject,text,files)
    

      

  • 相关阅读:
    R()函数的使用 tp2
    __call()的使用
    tp3.1.3 引入静态页面
    tp3.1.3创建应用
    .env文件的使用 thinkphp51
    concat()和push()的区别
    小程序模板template使用
    56. 从1到n整数中1出现的次数
    55. 连续子数组的最大和
    54. 数据流中的中位数
  • 原文地址:https://www.cnblogs.com/hark0623/p/4785158.html
Copyright © 2011-2022 走看看