发送邮件常用到的模块smtplib,email

该部分了解即可,一般不用这么发送文件,jenkins集成以后,直接通过jenkins发送邮件

  • 设置授权码
    常识:咱们平时登录邮箱通过用户名和密码,但是如果通过代码发送邮件,需要在邮箱中设置授权码,通过授权码登录邮箱、发送邮件。

注意:QQ 邮箱一般默认关闭SMTP服务,我们得先去开启它。请打开https://mail.qq.com/,登录你的邮箱。然后点击位于顶部的【设置】按钮,选择【账户设置】,然后下拉到这个位置。
在这里插入图片描述

  • 写一个发送邮件的类
# -*- encoding:utf-8 -*-

import smtplib
import time
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication

#邮件发送的用户名和密码   常识:第三方授权访问
_user = 'xxxxx@qq.com'
_pwd = '第三方授权码'

now = time.strftime('%Y-%m-%d-%H-%M-%S')   #获取时间戳

class SendEmail:
    def send_email(self,email_to,filepath):
        #email_to:收件人邮箱地址
        #filepath:发送的附件地址
        msg = MIMEMultipart()
        msg["Subject"] = now + "测试报告"  #主题
        msg["From"] = _user
        msg["To"] = email_to

        # 文字部分
        part = MIMEText("本次自动化测试报告,请查收",'plain','utf-8') #汉字防止出现乱码
        msg.attach(part)

        # 附件部分,只能发一个附件,需要多个附件,对下面代码做for循环
        part = MIMEApplication(open(filepath, "rb").read())  #打开附件
        part.add_header("Content-Disposition", "attachment", filename=filepath)  #加头部信息
        msg.attach(part)

        # #多个附件
        # path = ['1','2','3']
        # for item in path:
        #     part = MIMEApplication(open(item, "rb").read())
        #     part.add_header("Content-Disposition", "attachment", filename=filepath)
        #     msg.attach(part)

        # 发送
        s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30)  # 连接SMTP邮件服务,默认端口是25
        s.login(_user, _pwd)  # 登录服务器
        s.sendmail(_user, email_to, msg.as_string())  # 发送邮件

查看我们的收件箱,就可以查看到邮件信息:
在这里插入图片描述

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐