微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python邮件发送:普通文本、html、添加附件

# -*- coding: utf-8 -*-
# @Time    : 2019/9/19 13:46
# @Author  : HuangWenjun
# @Email   : [email protected]
# @File    : send_mail.py
# @Software: PyCharm
from email.mime.multipart import MIMEMultipart
from email.header import Header
from email.mime.text import MIMEText
import smtplib
def sendEmail(subject,mail_body,receiver,file_names=list()):
    """
    :param subject: 邮件标题
    :param mail_body: 邮件正文,可以是文字,也可以是html格式
    :param receiver: 邮件正文
    :param file_names: 邮件接收人
    :return:
    """
    smtpserver = smtp.exmail.qq.com #smtp设置
    username = xxx #用户登陆账号
    password = xxx #用户登陆密码

    msg = MIMEMultipart()
    #邮件正文
    msg.attach(MIMEText(mail_body,plain,utf-8))
    msg[Subject] = Header(subject,utf-8)
    msg[From] = username 
    msg[To] = receiver

    #附件:附件名称用英文
    for file_name in file_names:
        att = MIMEText(open(file_name,rb).read(),base64,utf-8)
        att["Content-Type"] = application/octet-stream
        att[Content-disposition] = attachment;filename="%s" % (file_name)
        msg.attach(att)
        
        # 登录发送邮件
    try:
        smtp = smtplib.SMTP()
        smtp.connect(smtpserver)
        smtp.login(username,password)
        smtp.sendmail(sender,receiver.split(,),msg.as_string())
    except Exception as e:
        print(e)
        print("邮件发送失败!")
    else:
        print("邮件发送成功!")
    finally:
        smtp.quit()


if __name__ == __main__:
    subject="测试标题"
    mail_body="测试本文"
    receiver="邮箱1,邮箱2" #接收人邮件地址 用逗号分隔
    file_names=[文件名称]
    sendEmail(subject,file_names)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐