首页 > 编程语言 > 详细

python 自动打包,发送邮件(包括附件)至多个收件人(qq邮箱,163邮箱)

时间:2020-04-20 19:05:52      阅读:76      评论:0      收藏:0      [点我收藏+]

 

-----------------------------打包部分----------------------------------

 

```
import zipfile

def zipDir(dirpath, outFullName):
    zip = zipfile.ZipFile(outFullName, ‘w‘, zipfile.ZIP_DEFLATED)
    for path, dirnames, filenames in os.walk(dirpath):
        #去掉目标和路径,只对目标文件夹下边的文件及文件夹进行压缩(包括父文件夹本身)
        this_path = os.path.abspath(‘.‘)
        fpath = path.replace(this_path, ‘‘)
        for filename in filenames:
            zip.write(os.path.join(path, filename), os.path.join(fpath, filename))
    zip.close()
    
```

  

----------------------------发送邮件部分----------------------------------

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase #附件
from email.mime.text import MIMEText
from email import encoders #转码

def server_pre(msg):
    ‘‘‘邮件服务器基础设置‘‘‘
    print(‘connecting :::::::::::::::‘)
    server = smtplib.SMTP_SSL(‘smtp.qq.com‘)
    # server.starttls()
    fromAddr = ‘XXXXXXXX@qq.com‘  # 发件人地址
    myPass = ‘password‘  # 发件人密码
    print(‘login :::::::::::::::‘)
    server.login(fromAddr, myPass)
    print(‘sending :::::::::::::::‘)
    server.sendmail(msg[‘From‘], msg[‘To‘].split(‘,‘),msg.as_string())
    print(‘quiting :::::::::::::::‘)
    server.quit()

def send_listing(zippedFn,subject,sendFn,to_adress_list):
    ‘‘‘发送邮件‘‘‘
    global msg_list
    msg_list = MIMEMultipart()
    msg_list[‘From‘] = ‘YYYYYYYYYYY@qq.com‘
    msg_list[‘To‘] = ‘,‘.join(to_adress_list)
    print(msg_list[‘To‘])
    msg_list[‘Subject‘] = subject
    body = ‘‘send py python‘
    msg_list.attach(MIMEText(body))
    print(‘period 1 :::::::::::::::‘)
    with open(zippedFn,‘rb‘) as f:
        #这里附件的MIME和文件名
        mime = MIMEBase(‘zip‘,‘zip‘,filename=sendFn)
        #加上必要的头信息
        mime.add_header(‘Content-Disposition‘,‘attachment‘,filename=(‘gb2312‘, ‘‘, sendFn))
        mime.add_header(‘Content-ID‘,‘<0>‘)
        mime.add_header(‘X-Attachment-Id‘,‘0‘)
        #把附件的内容读进来
        mime.set_payload(f.read())
        #用Base64编码
        encoders.encode_base64(mime)
        msg_list.attach(mime)
    print(‘period 2 :::::::::::::::‘)
    server_pre(msg_list)
    print(">> email send successfully !!")

  

python 自动打包,发送邮件(包括附件)至多个收件人(qq邮箱,163邮箱)

原文:https://www.cnblogs.com/zhanling/p/12739692.html

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