【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邮箱为例