一、python发送邮件思路整理

  1. 定义smtp服务器,如:smtp.qq.com
  2. 定义用户名和密码(授权码):username 和 password
  3. 定义接收邮箱:receiver
  4. 创建邮件对象:message
  5. 将信息组装到邮件对象
  6. 登录smtp服务器,并发送邮件

MIMEMultipart类型
下有3种子类型:mixed、alternative、related。

解释:
MIME:多用于邮件扩充协议
MIMEImage:图片类型邮件
MIMEMultipart:创建附件类型
MIMEApplication:用于传输应用程序数据或者二进制数据;
MIMEBase:
MIMEMessage:用于包装一个E-mail消息
MIMEAudio:用于传输音频或者音声数据;

具体详情:https://blog.csdn.net/litton_van/article/details/5664208

二、不废话直接上代码

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


class EmailUtil(object):

    def send_email(self):
        # 定义SMTP服务器
        smtpsrever = 'smtp.qq.com'
        # 发送邮件的用户名和密码
        username = '529851***@qq.com'
        password = 'segkbtnjeimdc***'  # 授权密码
        # 接收邮件的邮箱
        receiver = '185345180***@163.com'

        # 创建邮件对象
        message = MIMEMultipart('relate')  # 这是固定写法,生成一个带附件的邮件对象; 邮件信息,内容为空 #相当于信封##related表示使用内嵌资源的形式,将邮件发送给对方
        subject = "接口自动化测试报告"  # 邮件的主题
        attach = MIMEText(open('/Users/dongshuai/PycharmProjects/pytest/ui-testcaes/output/report/report.html', 'rb').read(), _subtype="html", _charset="utf-8")  # 附件
        # 给附件添加标题等
        attach['Content-Type'] = 'application/octet-stream'
        attach['Content-Disposition'] = 'attachment;filename="report.zip"'
        # 把邮件的信息组装到邮件对象里
        message['from'] = username
        message['to'] = receiver
        message['subject'] = subject
        message.attach(attach)

        # 登录smtp服务器并发送邮件
        smtp = smtplib.SMTP()
        smtp.connect(smtpsrever)
        smtp.login(username, password)
        smtp.sendmail(username, receiver, message.as_string())
        smtp.quit()


if __name__ == '__main__':
    EmailUtil().send_email()

运行结果:
在这里插入图片描述

加上attach[‘Content-Disposition’] = ‘attachment;filename=“report.zip”’ 后
在这里插入图片描述

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐