python SMTP 发送邮件
#!/usr/bin/env/python
# -*- coding: utf-8 -*-
# @Time : 2018/11/19 9:56
# @Author : ChenAdong
# @Email : aiswell@foxmail.com import smtplib s = smtplib.SMTP("smtp.qq.com", port=25)
tolist = ["xxx@163.com"] # 收件人列表
s.set_debuglevel(1)
msg = """\\
From:apiTestRobot<xxx@qq.com>
To:xxx@163.com # 填写收件邮箱
Subject:test THIS IS A TEST test dfdafdaf
THIS IS A TEST test dfdafdaf
THIS IS A TEST test dfdafdaf
THIS IS A TEST test dfdafdaf
"""
s.login("xxx@qq.com", "xxx")
s.sendmail("xxx@qq.com", "xxx@163.com", msg) # f填写发件邮箱和收件邮箱地址
s.quit()
注意事项:
这里的密码是授权码,需要打开QQ邮箱内的对应服务,然后生成授权码(可以当做密码用)
如图:

效果图:

* 上面是一个入门版本,下面介绍一个高级一点的版本
#!/usr/bin/env/python
# -*- coding: utf-8 -*-
# @Time : 2018/11/19 9:56
# @Email : aiswell@foxmail.com import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
import time def mymail(result):
"""
:param result: str
:return:
"""
s = smtplib.SMTP("smtp.qq.com", port=25)
tolist = ["xxx@163.com", "xxx@xxx.com", ]
s.set_debuglevel(1)
msg = MIMEText(result, "plain", "utf-8")
msg["From"] = formataddr(["xxx", "xxx@qq.com"])
msg["To"] = formataddr(["xxx", "xxxx@163.com"])
_time = time.strftime("%Y-%m-%d", time.localtime())
msg["Subject"] = "%s 接口测试结果" % str(_time)
s.login("xxx@qq.com", "xxx") # 前面是邮箱地址,后面是授权码
s.sendmail("xxx@qq.com", tolist, msg.as_string()) # 注意一定要用as_string方法,不然会报错
s.quit() if __name__ == "__main__":
log_path = "..//log//" + time.strftime("%Y-%m-%d", time.localtime()) + ".txt"
with open(log_path, "r") as result:
r = result.readlines()
str_result = ""
for line in r:
r_tem = "\r\n\t%s" % line
str_result = str_result + r_tem
print mymail(str_result)
但是在实际应用中,可能需要美观一点,可以发送html格式:
with open("./2018-11-21.html", "r") as f:
# content = f.readlines()
content = f.read()
如上,如果使用注释掉的方法发送的话,会出现乱码;正确的方式是f.read()
然后,msg = MIME.text(content, "html", "utf-8")
sendmail(from_addr, to_addr, msg.as_string())
需要注意的是,还是msg.as_string()
下面是发送的html文件样例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<table border="1" cellspacing="0" bgcolor="#e6e6fa">
<tr>
<td>时间</td>
<td>序列</td>
<td>用例名</td>
<td>status_code</td>
<td>msg</td>
<td>断言</td>
</tr>
<tr>
<td>555</td>
<td>fdafadf</td>
<td>fdafdafdafdafdafdafda</td>
<td>statffdafdafdafus_code</td>
<td>msg</td>
<td>断fdafdafda555454564546545645645言</td>
</tr>
</table>
</body>
</html>
python SMTP 发送邮件的更多相关文章
- python大法好——Python SMTP发送邮件
Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...
- Python——SMTP发送邮件
一.定义 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib ...
- Python SMTP发送邮件
import smtplibfrom email.mime.text import MIMEText # 引入smtplib和MIMEText host = 'smtp.163.com' # 设置 ...
- 使用Python SMTP发送邮件
import smtplibfrom email.mime.text import MIMEText # 服务器SMPTserver = "smtp.163.com"# 发送邮件的 ...
- Python SMTP发送邮件Ⅱ
使用Python发送HTML格式的邮件 Python发送HTML格式的邮件与https://www.xuanhe.net/weixiu/4271.html发送纯文本消息的邮件不同之处就是将MIMETe ...
- python SMTP 发送邮件 阿里企业邮箱、163邮箱 及535错误
class SendEmail(object): def __init__(self, type, to_addr): self.to_addr = to_addr self.sys_date = t ...
- python SMTP邮件发送(转载)
Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...
- Python使用SMTP发送邮件[HTML格式、送带附件]
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
- python通过SMTP发送邮件失败,报错505/535
python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission') 我们使用pyth ...
随机推荐
- Git学习系列之CentOS上安装Git详细步骤(图文详解)
前言 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Win ...
- 【JAVA SPRING】IOC与AOP
IOC(注入)有三种类型: 构造函数注入: 属性注入: 接口注入: JAVA反射: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法: 对于任意一个对象,都能够调用它的 ...
- 深入Spring:自定义事务管理
转自: http://www.jianshu.com/p/5347a462b3a5 前言 上一篇文章讲了Spring的Aop,这里讲一下Spring的事务管理,Spring的事务管理是建立在Aop的基 ...
- Java 8 新特性-菜鸟教程 (2) -Java 8 方法引用
Java 8 方法引用 方法引用通过方法的名字来指向一个方法. 方法引用可以使语言的构造更紧凑简洁,减少冗余代码. 方法引用使用一对冒号 :: . 下面,我们在 Car 类中定义了 4 个方法作为例子 ...
- java json-lib配置
用法 项目中要用到json-lib,mvnrepository.com查找它的dependency时结果如下: import net.sf.json.JSONArray; import net.sf. ...
- CUBA Studio 8.0 发布,企业级应用开发平台
CUBA Platform 是一款开源且免费的企业级应用开发框架,已有将近10年的发展历史,由俄罗斯的 Haulmont 公司开发,CUBA Platform 近期将正式登陆中国,将提供中文网站.中 ...
- 【SpringBoot系列5】SpringBoot整合RabbitMQ
前言: 因为项目需要用到RabbitMQ,前几天就看了看RabbitMQ的知识,记录下SpringBoot整合RabbitMQ的过程. 给出两个网址: RabbitMQ官方教程:http://www. ...
- [NOI 2016]国王饮水记
Description 题库链接 给出 \(n\) 个水杯,每个水杯装有不同高度的水 \(h_i\) ,每次可以指定任意多水杯用连通器连通后断开,问不超过 \(k\) 次操作之后 \(1\) 号水杯的 ...
- MFC函数—CSingleDocTemplate
前提:在InitInstance() 函数的初始化过程中,我们可以看到代码CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDoc ...
- 【4】 .net MVC使用Session验证用户登录
用最简单的Session方式记录用户登录状态 1.添加DefaultController控制器,重写OnActionExecuting方法,每次访问控制器前触发 public class Defaul ...