发送简单的邮件

用一个QQ邮箱发送到另一个QQ邮件。

首先设置QQ邮箱,邮箱设置 -> 账号 开启SMTP服务,点击开启按钮,按提示进行操作,需要1毛钱的短信费。开启后如下所示

 1 # coding = utf-8
2
3 import smtplib
4 from email.header import Header
5 from email.mime.text import MIMEText
6
7 # 发送邮箱
8 sender='12*****@qq.com'
9 # 发送密码,即开启smtp的授权码
10 psw='y****d'
11
12 # 接收邮箱
13 receiver='45*****@qq.com'
14 # 发送邮箱服务器
15 smtp_server='smtp.qq.com'
16
17 # 邮件正文,可编写HTML类型
18 msg=MIMEText('Hello,the test is finished, please check the attachment. Thanks','plain','utf-8')
19
20 # Header()来定义邮件标题
21 msg['From']=Header('Test Runner','utf-8')
22 msg['To']=Header('Test Monitor','utf-8')
23 msg['Subject']=Header('Test Result','utf-8')
24
25
26 server=smtplib.SMTP(smtp_server)
27 server.set_debuglevel(1)
28 server.starttls()
29 server.login(sender,psw)
30 server.sendmail(sender,receiver,msg.as_string())
31 server.quit()

运行结果如下

发送带附件的邮件

 1 #-*- coding:utf-8 -*-
2
3 import smtplib
4 from email.header import Header
5 from email.mime.text import MIMEText
6 from email.mime.multipart import MIMEMultipart
7
8 # 发送邮箱
9 sender='12****@qq.com'
10 # 发送密码,即开启smtp的授权码
11 psw='yzpi****cid'
12
13 # 接收邮箱
14 receiver='45*****@qq.com'
15 # 发送邮箱服务器
16 smtp_server='smtp.qq.com'
17
18 file = open('E:\\Python-Project\\unittest\\Report\\log.txt','rb').read()
19 att = MIMEText(file, 'base64','utf-8')
20 att["Content-Type"] = 'application/octet-stream'
21 att["Content-Disposition"] = 'attachment; filename="log.txt"'
22 msgRoot = MIMEMultipart('related')
23 msgRoot.attach(att)
24
25 # Header()来定义邮件标题
26 msgRoot['From']=Header('Test Runner','utf-8')
27 msgRoot['To']=Header('Test Monitor','utf-8')
28 msgRoot['Subject']=Header('Test Result','utf-8')
29
30
31 server=smtplib.SMTP(smtp_server)
32 server.set_debuglevel(1)
33 server.starttls()
34 server.login(sender,psw)
35 server.sendmail(sender,receiver,msgRoot.as_string())
36 server.quit()

运行结果

 
 

Python+Selenium学习笔记19 - 自动发送邮件的更多相关文章

  1. Python+Selenium学习笔记15 - 读取txt和csv文件

    读取txt的内容并用百度查找搜索 1 # coding = utf-8 2 3 from selenium import webdriver 4 import time 5 6 # 打开浏览器 7 d ...

  2. python+selenium生成测试报告后自动发送邮件

    标签(空格分隔): 自动化测试 运行自动化脚本后,会产生测试报告,而将测试报告自动发送给相关人员,能够让对方及时的了解测试情况,查看测试结果. 整个脚本包括三个部分: 生成测试报告 获取最新的测试报告 ...

  3. python + selenium 学习笔记 -摘要

    一.浏览器操作相关 from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() # 窗口最大 ...

  4. Python+Selenium学习笔记17 - HTML测试报告

    运行少量case时 1 # coding = utf-8 2 3 from selenium import webdriver 4 import unittest 5 import time 6 fr ...

  5. Python+Selenium学习笔记11 - python官网的tutorial - 定义函数

    1 def f(a, L=[]): 2 L.append(a) 3 return L 4 5 print f(5) 6 print f(2) 输出 1 def f(a, L=None): 2 if L ...

  6. Python+Selenium学习笔记12 - 窗口大小和滚动条

    涉及到的三个方法 set_window_size()  用于设置浏览器窗口的大小 e.gset_window_size(600,600) window.scrollTo() 用于设置浏览器窗口滚动条的 ...

  7. Python+Selenium学习笔记9 - 警告框处理

    如下图所示,这种窗口是不能通过前端工具对其进行定位的,这里可以通过switch_to_alert()方法去接受这个弹窗 1 # coding = utf-8 2 3 from selenium imp ...

  8. Python+Selenium学习笔记8 - 多表单&多窗口切换

    1.多表单切换 下图为待测页面:内嵌百度首页 切换到百度首页进行操作 1 # coding = utf-8 2 3 from selenium import webdriver 4 import os ...

  9. Python+Selenium学习笔记5 - python官网的tutorial - 交互模式下的操作

    这篇笔记主要是从Python官网的Tutorial上截取下来,再加上个人理解 1. 在交互模式下,下划线'_'还可以表示上一步的计算结果 2.引号转义问题. 从下图总结的规律是,字符串里的引号如果和引 ...

随机推荐

  1. 在Visual Studio 中使用git——使用git管理源代码(三)

    在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二)   第三部分:使用git管理源代码 ...

  2. 13- jmeter性能测试案例

    配置原件 HTTP请求默认值 前置处理程序 定时器 取样器 后置处理器:正则表达式提取器 断言 监听器 性能测试流程 1.评估获取性能测试需求(访问量大,操作频繁) 2.确定性能测试目标 : 并发用户 ...

  3. 测开需要熟悉的Linux基本知识

    安装软件-编辑 yum -y install 安装软件-上传下载 yum -y install lrzsz 查看当前目录 ls 查看所有 ls -a 创建一个文件夹 mkdir Foldername ...

  4. TP5.1 遇见问题整理

    1. 获取当前执行sql fetchSql(true) self::table('ecm_draw_address')->field('id')->where(array('store_i ...

  5. Intel汇编语言程序设计学习-第二章 IA-32处理器体系结构-下

    2.2  IA-32处理器体系结构 如前所述,IA-32是指始于Intel386直到当前最新的奔腾4的系列的处理器(额...这本书是什么时候写的啊,表示现在应该是I7啊),在IA-32的发展过程中,I ...

  6. Elasticsearch exception [type=mapper_parsing_exception, reason=No type specified for field [X]

    可能原因是实体类属性没有指定映射类型 创建mapping时需要指定field的type,如果不指定则报错 错误 //这是一个类中的字段 @Field(store = false) private St ...

  7. properties和yml进行对比

    properties和yml进行对比 概念 springboot支持两种格式的配置文件,一种是yml,一种是properties,默认的文件名是application.properties或者appl ...

  8. vscode 终端操作命令npm报错

    错误: 如果没有安装的node.js ,则需要安装. node.js官网下载地址: https://nodejs.org/zh-cn/ 安装node.js 后会看到C:\Users\XXX\AppDa ...

  9. HashMap底层原理分析

    本文将从以下方面结合源码进行分析:自动扩容.初始化与懒加载.哈希计算.位运算(默认采用JDK1.8).   自动扩容 扩容操作发生在putVal最后部分,在增加元素后才判断是否需要扩容,如果超过阈值, ...

  10. J2SE基础题

    J2SE基础 八种基本数据类型的大小,以及他们的封装类.(有的也说是9中基本数据类型,包括了void) 基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 ...