Spaces:
Runtime error
Runtime error
File size: 2,257 Bytes
842b5ee 4775e03 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# 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()
|