python发送带附件的邮件

# coding=utf8
import os, smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header


class SendMail():

    reportpath = os.path.join(os.getcwd(), 'report')
    def getreport(self):
        dirs = os.listdir(self.reportpath)

        dirs.sort(key=lambda fn:os.path.getmtime(self.reportpath+'//'+fn))

        report = os.path.join(self.reportpath,dirs[-1])
        print report
        return report

    def sendmail(self,report):
        # 定义服务器类型,登录名密码,发送人和接受人,发送邮件主题
        smtpserver = 'smtp.qq.com'

        user = 'fyf2782840@qq.com'
        passwd = 'odvfqndlamxobfhh'

        sender = 'fyf2782840@qq.com'
        receiver = ['fyf2782840@qq.com','949308246@qq.com','2435109418@qq.com']

        header = 'Happy New Year!!!!!  from fyf'

        content = '这是测试用的哦'

        #构造附件内容
        f = open(report,'rb')
        sendfile = f.read()
        f.close()

        att = MIMEText(sendfile,'base64','utf-8')
        att["Content-Type"] = 'application/octet-stream'
        #外面用单引号,里面文件名用双引号
        att["Content-Disposition"] = 'attachment;filename="1.txt"'

        msgRoot = MIMEMultipart()
        msgRoot.attach(MIMEText(content,'html','utf-8'))
        msgRoot['From'] = sender
        msgRoot['To'] = ','.join(receiver)
        msgRoot['Subject'] = Header(header,'utf-8')
        msgRoot.attach(att)

        # 发送邮件,端口用465, keyfile = 'vxkdfejinpifbeaj'
        smtp = smtplib.SMTP_SSL(smtpserver, 465)

        smtp.helo(smtpserver)  # 向服务器标识用户身份
        smtp.ehlo(smtpserver)  # 服务器返回结果确认

        # 直接登录,之前是登录前写了smtp.connect()
        smtp.login(user, passwd)
        smtp.sendmail(sender, receiver, msgRoot.as_string())

        smtp.quit()


if __name__ == "__main__":
    mail = SendMail()
    report = mail.getreport()
    mail.sendmail(report)




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值