Spaces:
Runtime error
Runtime error
# coding=utf-8 | |
import smtplib | |
import os | |
from email.mime.text import MIMEText | |
from email.mime.multipart import MIMEMultipart | |
class MyEmail: | |
def __init__(self): | |
self.user = None | |
self.passwd = None | |
self.to_list = [] | |
self.cc_list = [] | |
self.tag = None | |
self.doc = None | |
self.txt = None | |
def send(self): | |
""" | |
发送邮件 | |
""" | |
try: | |
server = smtplib.SMTP_SSL("smtp.exmail.qq.com", port=465) | |
server.login(self.user, self.passwd) | |
server.sendmail( | |
"<%s>" % self.user, self.to_list + self.cc_list, self.get_attach() | |
) | |
server.close() | |
print("send email successful") | |
except Exception: | |
print("send email failed") | |
def get_attach(self): | |
""" | |
构造邮件内容 | |
""" | |
attach = MIMEMultipart() | |
# 添加邮件内容 | |
txt = MIMEText(self.txt) | |
attach.attach(txt) | |
if self.tag is not None: | |
# 主题,最上面的一行 | |
attach["Subject"] = self.tag | |
if self.user is not None: | |
# 显示在发件人 | |
attach["From"] = "Chat<%s>" % self.user | |
if self.to_list: | |
# 收件人列表 | |
attach["To"] = ";".join(self.to_list) | |
if self.cc_list: | |
# 抄送列表 | |
attach["Cc"] = ";".join(self.cc_list) | |
if self.doc: | |
# 估计任何文件都可以用base64,比如rar等 | |
# 文件名汉字用gbk编码代替 | |
name = os.path.basename(self.doc).encode("gbk") | |
f = open(self.doc, "rb") | |
doc = MIMEText(f.read(), "base64", "gb2312") | |
doc["Content-Type"] = "application/octet-stream" | |
doc["Content-Disposition"] = 'attachment; filename="' + name + '"' | |
attach.attach(doc) | |
f.close() | |
return attach.as_string() | |
if __name__ == "__main__": | |
my = MyEmail() | |
my.user = "[email protected]" | |
my.passwd = "todo" | |
my.to_list = ["[email protected]"] | |
my.tag = "Chat注册验证码" | |
my.txt = "【123456】Chat邮箱注册验证码,您正在注册Chat账号,请勿泄露。" | |
my.send() | |