Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 75bb0b5

Browse files
committed
邮箱发送文本、图片、视频等文件
1 parent 90d3bfe commit 75bb0b5

File tree

2 files changed

+55
-21
lines changed

2 files changed

+55
-21
lines changed

发送邮件脚本/1.jpeg

39.8 KB
Loading

发送邮件脚本/sendEmail.py

Lines changed: 55 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import smtplib # 发送邮件 连接邮件服务器
22
from email.mime.text import MIMEText # 构建邮件格式
3-
3+
from email.mime.multipart import MIMEMultipart # 发送多个部分
4+
from email.mime.image import MIMEImage # 图片格式
5+
from email.mime.application import MIMEApplication # 发送附件
46

57
class SendEmail:
68
def __init__(self):
@@ -13,11 +15,7 @@ def __init__(self):
1315
# 发送邮件的服务器地址 qq为smtp.qq.com 163邮箱为smtp.163.com
1416
self.email_host = 'smtp.qq.com'
1517

16-
def send_email(self, userlist, subject, content):
17-
message = MIMEText(content, _subtype='plain', _charset='utf-8')
18-
message['Subject'] = subject
19-
message['From'] = self.send_user
20-
message['To'] = ';'.join(userlist) # 收件人列表以分号隔开
18+
def _send(self, userlist, message):
2119
# 实例化邮件发送服务器
2220
server = smtplib.SMTP()
2321
# 连接qq邮箱服务器
@@ -29,28 +27,64 @@ def send_email(self, userlist, subject, content):
2927
# 关闭邮箱
3028
server.close()
3129

32-
def send_test(self, userlist, passNumber, failNumber):
30+
def send_text(self, userlist, subject, content):
31+
"""
32+
发送文本邮件
33+
:param userlist: 接收人 列表形式
34+
:param subject: 主题
35+
:param content: 内容
36+
:return:
37+
"""
38+
message = MIMEText(content, _subtype='plain', _charset='utf-8')
39+
message['Subject'] = subject
40+
message['From'] = self.send_user
41+
message['To'] = ';'.join(userlist) # 收件人列表以分号隔开
42+
self._send(userlist, message)
43+
44+
def send_image(self, userlist, subject, img_path):
3345
"""
34-
发送测试结果
35-
:param userlist:
36-
:param passNumber:
37-
:param failNumber:
46+
发送图片
47+
:param userlist:收件人列表
48+
:param subject:主题
49+
:param img_path:图片路径
3850
:return:
3951
"""
40-
totalNumber = passNumber + failNumber
52+
message = MIMEMultipart('related')
53+
content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8') # 正文
54+
message.attach(content)
55+
message['Subject'] = subject
56+
message['From'] = self.send_user
57+
message['To'] = ';'.join(userlist) # 收件人列表以分号隔开
58+
59+
file = open(img_path, "rb")
60+
img_data = file.read()
61+
file.close()
62+
63+
img = MIMEImage(img_data)
64+
img.add_header('Content-ID', 'imageid')
65+
message.attach(img)
4166

42-
# %.2f表示保留小数点后两位小数 %%表示百分之百
43-
passPercentage = "%.2f%%" % (passNumber / totalNumber * 100)
44-
failPercentae = "%.2f%%" % (failNumber / totalNumber * 100)
67+
self._send(userlist, message)
68+
69+
def send_vedio(self, userlist, subject, file):
70+
"""
71+
发送文件
72+
"""
73+
message = MIMEMultipart('related')
74+
content = MIMEText('<html><body><img src="cid:imageid" alt="imageid"></body></html>', 'html', 'utf-8') # 正文
75+
message.attach(content)
76+
message['Subject'] = subject
77+
message['From'] = self.send_user
78+
message['To'] = ';'.join(userlist) # 收件人列表以分号隔开
4579

46-
sub = "测试结果报告"
47-
content = " 测试用例总数\t%s个\n通过个数\t%s个\n失败个数\t%s个\n通过率\t%s\n失败率\t%s" % (
48-
totalNumber, passNumber, failNumber, passPercentage, failPercentae)
49-
self.send_email(userlist, sub, content)
50-
return True
80+
part_attach1 = MIMEApplication(open(file, 'rb').read()) # 打开附件
81+
part_attach1.add_header('Content-Disposition', 'attachment', filename=file) # 为附件命名
82+
message.attach(part_attach1) # 添加附件
5183

84+
self._send(userlist, message)
5285

5386
if __name__ == "__main__":
5487
send = SendEmail()
5588
user_list = ['1364826576@qq.com']
56-
send.send_test(user_list, 4, 5)
89+
send.send_vedio(user_list, "图片", "1.jpeg")
90+
# send.send_text(user_list, 4, 5)

0 commit comments

Comments
 (0)