问答详情

在python中如何发送带有附件的邮件?

380次观看
标签: 附件 邮件 python
老师回答

在发邮件时,如果需要发文件,我们会与电子邮件附在一起传送至对方邮箱。用来附加说明或者提供材料用的电子表格 网页、数据库等等是不能简单用文本形式的邮件来发送的,而且表格、网页、数据库等在邮件服务商提供的信纸界面上是显示不出来的,所以要以附件的形式发送附件类型可以是各类文件,不能识别的文件加到压缩包里应该也可以发送。那么接下来看,小编就教大家在python中发送带附件的邮件。

发送带附件的邮件,首先要创建MIMEMultipart()实例,然后构造附件,如果有多个附件,可依次构造,最后利用smtplib.smtp发送。

代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
from email.mime.application import MIMEApplication
if __name__ == '__main__':
    from_addr = 'xxx@qq.com'
    password = 'xxx'
    to_addr = 'xxx@qq.com'
    smtp_server = 'smtp.qq.com'
    pdfFile = 'test.pdf'
    pdfApart = MIMEApplication(open(pdfFile, 'rb').read())
    pdfApart.add_header('Content-Disposition', 'attachment', filename=pdfFile)
    msg_file = MIMEMultipart()
    msg_file['From'] = Header(from_addr)
    msg_file['To'] = Header(to_addr)
    msg = MIMEText('send by python,中文', 'plain', 'utf-8')
    msg_file.attach(msg)
    msg_file.attach(pdfApart)
    msg_file['Subject'] = 'title'
    
    server = smtplib.SMTP_SSL(smtp_server)
    server.connect(smtp_server, 465)
    server.login(from_addr, password)
    server.sendmail(from_addr, to_addr, msg_file.as_string())
    server.quit()

平时大家群发的邮件通常都制作精美、图文搭配、布局精巧,而且邮件还动态适配不同的终端,如果我们做不到优美漂亮,至少要说清楚邮件内容。以附件的形式发送,可以很好的说明我们的想法,快点学起来哦~












免费直播

    精选课程
    相关推荐

    注册电脑版

    版权所有 2003-2020 广州环球青藤科技发展有限公司