Python Email发送,通知业务完成
Email 发送
#!/usr/bin/python # -*- coding: UTF-8 -*- import base64 import smtplib from email.mime.text import MIMEText from email.header import Header from email.utils import formataddr def crypt(source, key): from itertools import cycle result='' temp=cycle(key) for ch in source: result=result+chr(ord(ch)^ord(next(temp))) return result sender = 'xxx@aliyun.com' receivers = ['xxx@dingtalk.com'] # 接收邮件,可设置为你的QQ邮箱或者其他邮箱 # 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码 msg = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8') # msg['From'] = Header("S", 'utf-8') # 发送者 # msg['To'] = Header("测试", 'utf-8') # 接收者 msg['From'] = formataddr(["data_deal", sender]) # 发送者 msg['To'] = formataddr(["recv", receivers[0]]) # 接收者 subject = 'Python SMTP 邮件测试' def sendMail(subject, key): error_msg = None try: msg['Subject'] = Header(subject, 'utf-8') # clint = smtplib.SMTP() # EMAIL_HOST, EMAIL_PORT = "smtpdm.aliyun.com", 465 # clint.connect(EMAIL_HOST, EMAIL_PORT) EMAIL_HOST, EMAIL_PORT = "smtp.aliyun.com", 465 clint = smtplib.SMTP_SSL(EMAIL_HOST, EMAIL_PORT) clint.login(sender, crypt('xxx', key)) clint.sendmail(sender, receivers, msg.as_string()) clint.quit() print("邮件发送成功") except smtplib.SMTPConnectError as e: error_msg= '邮件发送失败,连接失败' except smtplib.SMTPAuthenticationError as e: error_msg = '邮件发送失败,认证错误:' except smtplib.SMTPSenderRefused as e: error_msg = '邮件发送失败,发件人被拒绝:' except smtplib.SMTPRecipientsRefused as e: error_msg = '邮件发送失败,收件人被拒绝:' except smtplib.SMTPDataError as e: error_msg = '邮件发送失败,数据接收拒绝:' except smtplib.SMTPException as e: error_msg = '邮件发送失败, {}'.format(str(e)) except Exception as e: error_msg = '邮件发送异常, {}'.format(str(e)) if error_msg != None: print("Error: 无法发送邮件") print(error_msg) # sendMail('ttttt', '123')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步