python自动化之邮件发送
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.header import Header
import datetime
import os.path
import createsheet
import base64
import sys
reload(sys)
sys.setdefaultencoding('utf8')
oct21st=datetime.datetime.now()
nowday=oct21st.strftime('%Y-%m-%d')
class Mailer(object):
def __init__(self,maillist,mailtitle,mailcontent):
self.mail_list = maillist
self.mail_title = mailtitle
self.mail_content = mailcontent
# self.mail_host = "smtp.163.com"
# self.mail_user = "*"
# self.mail_pass = "*"
# self.mail_postfix = "*"
self.mail_host = "smtp.exmail.qq.com"
self.mail_user = "*"
self.mail_pass = "*"
self.mail_postfix = "*"
def sendMail(self):
#创建一个带附件的实例
#加邮件头,设置根容器属性
## 构造MIMEMultipart对象做为根容器
me = self.mail_user + "<" + self.mail_user+">"
msg = MIMEMultipart()
msg['Subject'] = Header(self.mail_title, 'utf-8')
msg['From'] = me
msg['To'] = ";".join(self.mail_list)
#添加邮件内容
#注意,要指定邮件内容的编码为utf-8,否则中文会有乱码
#构造MIMEText对象做为邮件显示内容并附加到根容器
#puretext = MIMEText('<h1>你好,<br/>'+self.mail_content+'</h1>','html','utf-8')
puretext = MIMEText('Hi:\n见附件','plain','utf-8')
msg.attach(puretext)
# jpg类型的附件
# jpgpart = MIMEApplication(open('/home/mypan/1949777163775279642.jpg', 'rb').read())
# jpgpart.add_header('Content-Disposition', 'attachment', filename='beauty.jpg')
# msg.attach(jpgpart)
# 首先是xlsx类型的附件
# 设置附件头
xlsxname='C:\Users\Administrator\Desktop\内容\* '+nowday+'.xlsx'
# filename=os.path.basename(xlsxname).encode('gb2312')
filename=os.path.basename(xlsxname)
xlsxpart = MIMEApplication(open(xlsxname.decode('utf-8'), 'rb').read())
xlsxpart.add_header('Content-Disposition', 'attachment', filename='=?utf-8?b?'+base64.b64encode(filename.encode('utf-8'))+'?=')
msg.attach(xlsxpart)
# mp3类型的附件
#mp3part = MIMEApplication(open('kenny.mp3', 'rb').read())
#mp3part.add_header('Content-Disposition', 'attachment', filename='benny.mp3')
#msg.attach(mp3part)
# pdf类型附件
#part = MIMEApplication(open('foo.pdf', 'rb').read())
#part.add_header('Content-Disposition', 'attachment', filename="foo.pdf")
#msg.attach(part)
try:
s = smtplib.SMTP() #创建邮件服务器对象
s.connect(self.mail_host) #连接到指定的smtp服务器。参数分别表示smpt主机和端口
s.login(self.mail_user, self.mail_pass) #登录到你邮箱
s.sendmail(me, self.mail_list, msg.as_string()) #发送内容
s.close()
return True
except Exception, e:
print str(e)
return False
def send_mail():
createsheet.createsheet()
mailto_list = ["*"]
mail_title = '你好'
mail_content = 'Hey this is content'
mm = Mailer(mailto_list,mail_title,mail_content)
res = mm.sendMail()
print res
if __name__ == '__main__':
#send list
send_mail()
python自动化之邮件发送的更多相关文章
- python 自动化实现定时发送html报告到邮箱
# coding =utf-8 import os import unittest import time import datetime import smtplib from email.mime ...
- 多测师讲解自动化 _邮件发送_高级讲师肖sir
第一步.进入如下网址申请163邮箱. https://mail.163.com/ 第二步.注册完之后登录.点击如下图设置点击POP3/SMTP/IMAP. 第三步.右侧点击客户端授权密码. 第四步. ...
- Selenium+Python之163邮件发送
今晚写了一个163邮箱登录的脚本,由于不停的访问163登录主页导致直接访问163邮箱主页登录需要输入验证码,因为无法获取到验证码,就这导致直接访问主页登录脚本不可行,为了绕过验证码,现在先访问hao1 ...
- 【python】smtp邮件发送
纯文本: #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from ...
- 用python SMTP进行邮件发送
import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart & ...
- python SMTP邮件发送(转载)
Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...
- python selenium2示例 - email发送
前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录.结果等等等相关信息通过自动的手段发送给相关人员.python的smtplib.email模块为我们提供了很好的email发送等功能的 ...
- 测试开发【提测平台】分享11-Python实现邮件发送的两种方法实践
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 按照开发安排,本篇本应该是关于提测页面的搜索和显示实现,怕相似内容疲劳,这期改下内容顺序,将邮件服务的相关的提前,在之前的产品需求和原型中 ...
- 【Python + Selenium3】自动化测试之DDT数据驱动并生成测试报告以及用yagmail邮件发送文件
我的文件路径 一.DDT代码: import unittest from time import sleep from selenium import webdriver from ddt impor ...
随机推荐
- Linux shell(4)
test比较两个值: 测试比较两个值是linux中常用的比较运算,test命令可以进行对两个值的比较,如果比较成功则返回值为0,否则为非0 常用比较方法: ·1.整数比较 2.字符串比较 3.逻辑比较 ...
- ESP8266/ESP32模块晶振频偏调试
ESP8266/ESP32模块晶振频偏调试 !> 前提:晶振频偏调试是需要仪器设备的支持才能完成的. 测试环境:IQ2010综合测试仪 本文仅记录有关频偏调试的主要内容,其余不在赘述. IQ20 ...
- gradle springboot 项目运行的三种方式
一.java -jar 二.eclipse中 Java Application 三.命令行 gradle bootRun
- java事务 深入Java事务的原理与应用
一.什么是JAVA事务 通常的观念认为,事务仅与数据库相关. 事务必须服从ISO/IEC所制定的ACID原则.ACID是原子性(atomicity).一致性(consistency).隔离性 (iso ...
- 一个可以自由存取的onedriver
https://cittedu-my.sharepoint.com/personal/jostin_5gd_me/Documents/jostin
- IEEE1588 verision 2 报文介绍
PTP 报文 PTP verision 2 报文是由 报头 / header,主体 / body 和 报尾 / suffix 组成,报尾长度可能为 0 ; PTP verision 2 报文在 ver ...
- Vue实现双向绑定的原理以及响应式数据
一.vue中的响应式属性 Vue中的数据实现响应式绑定 1.对象实现响应式: 是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集 ...
- Daily Scrum1 11.3
今天是我们团队进入代码实现阶段的第一天,经过一周对上一届项目代码的阅读和研究,队员们已经从代码中分析出我们这次项目将要修改和补充的地方,我们接下来要做的地方就是在两周的时间内将团队项目在alpha阶段 ...
- Dailu Scrum (2015/10/27)
在周日晚上PM已经为大家分配了部分的代码修改工作,今天晚上PM召集了被分配代码工作的3个DEV一起讨论要求修改的代码.在共同讨论的过程中确有发现以下代码的不规范之处,PM当即要求我们先要修改规范代码的 ...
- 实验3 --俄罗斯方块 with 20135335郝爽
一. 实验内容 (一)敏捷开发与XP 内容:1.敏捷开发(Agile Development)是一种以人为核心.迭代.循序渐进的开发方法. 2.极限编程(eXtreme Programming,X ...