• 【Python】自动发送邮件


    一、效果

    二、代码

    可直接复制进行调用(修改main里对应参数即可)

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    
    """
    @Time    :2022/2/11 11:05
    @Author  :
    @File    :myemail.py
    @Version :1.0
    @Function:
    """
    import datetime
    import smtplib
    from email.mime.text import MIMEText
    from email.utils import formataddr
    
    
    class MyEmail:
        def __init__(self):
            self.sender = ''  # 发件人邮箱账号
            self.pwd = ''  # 发件人邮箱的授权码
            self.to_user = []  # 收件人邮箱账号
    
        def send(self, title, content):
            """
            发送邮件
            :param title: 邮件标题
            :param content: 邮件内容
            :return: True-发送成功;False-发送失败
            """
            is_success = True
            try:
                for user in self.to_user:
                    msg = MIMEText(content, 'plain', 'utf-8')
                    msg['From'] = formataddr(["AlarmRobot", self.sender])  # 发件人邮箱昵称、账号
                    msg['To'] = formataddr(["昵称", user])  # 收件人昵称、账号
                    msg['Subject'] = title  # 邮件的主题,标题
                    server = smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,端口是25
                    server.login(self.sender, self.pwd)  # 发件人邮箱账号、授权码
                    server.sendmail(self.sender, [user, ], msg.as_string())  # 发件人账号、收件人账号、发送内容
                server.quit()  # 关闭连接
            except Exception as e:
                is_success = False
            return is_success
    
    
    if __name__ == '__main__':
        mail = MyEmail()
        ''' 初始化 '''
        mail.sender = ''  # 发件人邮箱账号
        mail.pwd = ''  # 发件人邮箱的授权码(获取方法见三)
        ''' 邮件信息 '''
        mail.to_user.append('')  # 收件人邮箱账号
        alarm_title = '告警'  # 邮件标题
        alarm_text = f"{datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\r\n注意:温度过高(40C°)"  # 邮件内容
        result = mail.send(alarm_title, alarm_text)
    
        if result:
            print("邮件发送成功")
        else:
            print("邮件发送失败")

    三、获取邮箱授权码

    以QQ邮箱为例

  • 相关阅读:
    【工作感悟】2022年8月23日
    [Anaconda]查看anaconda的方法
    [MACOS]BOOKS
    Mac_每次都要执行source ~/.bash_profile 配置的环境变量才生效
    [Anaconda]查看当前已经激活的anaconda的方法
    解决:DeprecationWarning: executable_path has been deprecated, please pass in a Service object
    [BREW]如何在MAC上安装Consolas
    20220917
    对net5.0的理解
    如何做到高效CI/CD
  • 原文地址:https://www.cnblogs.com/danhuai/p/15882726.html
Copyright © 2020-2023  润新知