python使用SMTP发送邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP协议属于TCP/IP协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件

在自动化测试过程中,当测试执行完成之后,需要自己找到测试报告的位置,并且发送到目标邮箱中,以便查看最终的测试结果。

下面主要的内容是,将html的测试报告读取之后,放在邮件的内容中,并且把html测试报告放在附件中一起发送。

 1 #coding:utf-8
 2
 3 import os,sys
 4 import smtplib
 5 import time
 6 from email.header import Header
 7 from email.mime.text import MIMEText
 8 from email.mime.multipart import MIMEMultipart
 9
10 reportPath = os.path.join(os.getcwd(), ‘report‘) # 测试报告的路径
11 # reportPath = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])),‘report‘)
12
13 class SendMail(object):
14     def __init__(self,recver=None):
15         """接收邮件的人:list or tuple"""
16         if recver is None:
17             self.sendTo = [‘[email protected]‘] #收件人这个参数,可以是list,或者tulp,以便发送给多人
18         else:
19             self.sendTo = recver
20
21     def get_report(self):# 该函数的作用是为了在测试报告的路径下找到最新的测试报告
22         dirs = os.listdir(reportPath)
23         dirs.sort()
24         newreportname = dirs[-1]
25         print(‘The new report name: {0}‘.format(newreportname))
26         return newreportname #返回的是测试报告的名字
27
28     def take_messages(self): # 该函数的目的是为了 准备发送邮件的的消息内容
29         newreport = self.get_report()
30         self.msg = MIMEMultipart()
31         self.msg[‘Subject‘] = ‘测试报告主题‘ # 邮件的标题
32         self.msg[‘date‘] = time.strftime(‘%a, %d %b %Y %H:%M:%S %z‘)
33
34         with open(os.path.join(reportPath,newreport), ‘rb‘) as f:
35             mailbody = f.read()# 读取测试报告的内容
36         html = MIMEText(mailbody,_subtype=‘html‘,_charset=‘utf-8‘) # 将测试报告的内容放在 邮件的正文当中
37         self.msg.attach(html) # 将html附加在msg里
38
39         # html附件    下面是将测试报告放在附件中发送
40         att1 = MIMEText(mailbody, ‘base64‘, ‘gb2312‘)
41         att1["Content-Type"] = ‘application/octet-stream‘
42         att1["Content-Disposition"] = ‘attachment; filename="TestReport.html"‘#这里的filename可以任意写,写什么名字,附件的名字就是什么
43         self.msg.attach(att1)
44
45     def send(self):
46         self.take_messages()
47         self.msg[‘from‘] = ‘[email protected]‘ # 发送邮件的人
48         smtp = smtplib.SMTP(‘smtp.163.com‘,25) # 连接服务器
49         smtp.login(‘[email protected]‘,‘xxxxxxx‘) # 登录的用户名和密码
50         smtp.sendmail(self.msg[‘from‘], self.sendTo,self.msg.as_string()) # 发送邮件51         smtp.close()
52         print(‘sendmail success‘)
53
54 if __name__ == ‘__main__‘:
55     sendMail = SendMail()
56     sendMail.send()

最终的发送结果:

				
时间: 2024-10-10 05:09:46

python使用SMTP发送邮件的相关文章

python通过SMTP发送邮件失败,报错505/535

python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用python发送邮件时相当于自定义客户端根据用户名和密码登录,然后使用SMTP服务发送邮件,新注册的163邮箱是默认不开启客户端授权的(对指定的邮箱大师客户端默认开启),因此登录总是被拒绝,解决办法(以163邮箱为例):进入163邮箱-设置-客户端授权密码-开启(授权码是用于登录第三方邮件客户端的专用密码)

Python 通过 SMTP 发送邮件

Python版本:Python3.5.2 简介 SMTP是发送邮件的协议,Python 内置对 SMTP 的支持,可以发送纯文本邮件.HTML 邮件以及带附件的邮件. Python 对 SMTP 支持有 smtplib 和 email 两个模块,email 负责构造邮件,smtplib 负责发送邮件. 我使用的是 QQ 邮箱来完成本次实验,首先应该配置好自己的邮箱以启用 SMTP 功能,具体步骤如下: 登录到 QQ 邮箱的首页,找到设置功能: 进入到设置,切换到帐户标签页: 下拉找到如下选项,并

python==使用smtp发送邮件的源代码,解决554错误码的问题

import smtplib from email.mime.text import MIMEText from email.header import Header import time def email(): #发送邮箱服务器 smtpserver = "smtp.163.com" #发送邮箱的账号/密码 user= "我的邮箱@163.com" password="我的密码" #发送邮箱 sender="我的邮箱@163.co

通过SMTP发送邮件的Python代码

贴上一段用Python开发的发送邮件程序 #coding=UTF-8 import smtplib from email.mime.text import MIMEText smtp_host="smtp.163.com" smtp_port="25" mail_user="[email protected]" mail_password="1111222" def send_mail(to_list,subject,cont

使用python的smtp模块发送邮件

使用Python的smtp模块,可以十分方便的编写自己的smtp客户端,来发送邮件.现在发现,不能使用腾讯的smtp服务器去法送,但是可以使用163的smtp服务器去发送邮件. 直接上代码吧 #!/usr/bin/env python ''' a simple smtp client ''' import smtplib from email.mime.text import MIMEText def sendMail(user,pwd,to,subject,text): msg=MIMETex

Python学习笔记(四十七)SMTP发送邮件

摘抄自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432005226355aadb8d4b2f3f42f6b1d6f2c5bd8d5263000 SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件,smtplib负责发送

python smtplib 模块发送邮件

发送邮件是大家经常碰到的,接下来看一下使用 python smtplib模块发送邮件,好了废话不多说,直接上代码: import smtplib,sys,os,timefrom email.mime.text import MIMEText import newreportdef send_mail(me,tomail,sub,content):     #要发给谁,可以发送多个人    mailto_list = [tomail+';']    #设置服务器,用户名.口令以及邮箱的后缀   

SMTP发送邮件

SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块: email负责构造邮件, smtplib负责发送邮件. 简单邮件发送 先来个简单的邮件来个入门: 首先里用email模块来构建一个简单邮件文本: form email.mime.text import MIMEText msg = MIMEText('Hello,send by Python','plain','utf-

python 使用stmp发送邮件

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一种很方便的途径发送电子邮件.它对smtp协议进行了简单的封装. 创建 SMTP 对象 Python创建 SMTP 对象语法如下: import smtplib smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] ) 参数说明: hos