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 formataddrdef crypt(source, key):from itertools import cycleresult=''temp=cycle(key)for ch in source:result=result+chr(ord(ch)^ord(next(temp)))return resultsender = '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 = Nonetry: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", 465clint = 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')