lizhen30 commited on
Commit
4775e03
·
1 Parent(s): 033f13b

添加mail邮箱发送

Browse files
Files changed (1) hide show
  1. redis/mail.py +73 -0
redis/mail.py ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import smtplib
2
+ import os
3
+ from email.mime.text import MIMEText
4
+ from email.mime.multipart import MIMEMultipart
5
+
6
+
7
+ class MyEmail:
8
+ def __init__(self):
9
+ self.user = None
10
+ self.passwd = None
11
+ self.to_list = []
12
+ self.cc_list = []
13
+ self.tag = None
14
+ self.doc = None
15
+ self.txt = None
16
+
17
+ def send(self):
18
+ """
19
+ 发送邮件
20
+ """
21
+ try:
22
+ server = smtplib.SMTP_SSL("smtp.exmail.qq.com", port=465)
23
+ server.login(self.user, self.passwd)
24
+ server.sendmail(
25
+ "<%s>" % self.user, self.to_list + self.cc_list, self.get_attach()
26
+ )
27
+ server.close()
28
+ print("send email successful")
29
+ except Exception:
30
+ print("send email failed")
31
+
32
+ def get_attach(self):
33
+ """
34
+ 构造邮件内容
35
+ """
36
+ attach = MIMEMultipart()
37
+ # 添加邮件内容
38
+ txt = MIMEText(self.txt)
39
+ attach.attach(txt)
40
+ if self.tag is not None:
41
+ # 主题,最上面的一行
42
+ attach["Subject"] = self.tag
43
+ if self.user is not None:
44
+ # 显示在发件人
45
+ attach["From"] = "Chat<%s>" % self.user
46
+ if self.to_list:
47
+ # 收件人列表
48
+ attach["To"] = ";".join(self.to_list)
49
+ if self.cc_list:
50
+ # 抄送列表
51
+ attach["Cc"] = ";".join(self.cc_list)
52
+ if self.doc:
53
+ # 估计任何文件都可以用base64,比如rar等
54
+ # 文件名汉字用gbk编码代替
55
+ name = os.path.basename(self.doc).encode("gbk")
56
+ f = open(self.doc, "rb")
57
+ doc = MIMEText(f.read(), "base64", "gb2312")
58
+ doc["Content-Type"] = "application/octet-stream"
59
+ doc["Content-Disposition"] = 'attachment; filename="' + name + '"'
60
+ attach.attach(doc)
61
+ f.close()
62
+ return attach.as_string()
63
+
64
+
65
+ if __name__ == "__main__":
66
+ my = MyEmail()
67
+
68
+ my.user = "[email protected]"
69
+ my.passwd = "todo"
70
+ my.to_list = ["[email protected]"]
71
+ my.tag = "Chat注册验证码"
72
+ my.txt = "【123456】Chat邮箱注册验证码,您正在注册Chat账号,请勿泄露。"
73
+ my.send()