在之前的工作中,测试web界面产生的报告是自动使用python中发送邮件模块实现,在全部自动化测试完成之后,把报告自动发送给相关人员

其实在python中很好实现,一个是smtplib和mail俩个模块来实现,主要如下:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
import os sender = 'xxx@126.com'
receives = 'xxx@qq.com'
cc_receiver = 'xxx@qq.com'
subject = 'Python auto test' msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receives
msg['Cc'] = cc_receiver
msg['Subject'] = subject
msg.attach(MIMEText('Dont reply','plain','utf-8')) os.chdir('H:\\')
with open('auto_report03.html','r',encoding = 'utf-8') as fp:
att = MIMEBase('html','html')
att.add_header('Content-Disposion','attachment',filename = 'auto_report03.html')
att.set_payload(fp.read())
msg.attach(att) sendmail = smtplib.SMTP()
sendmail.connect('smtp.126.com',25)
sendmail.login(xxx,xxx')
sendmail.sendmail(sender,receives,msg.as_string())
sendmail.quit()

在这里我们可以把发送mail的代码进行封装成一个函数供外部调用,如下:

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
import os def sendMail(subject,textContent,sendFileName):
sender = 'xxx@126.com'
receives = 'xxx@qq.com'
cc_receiver = 'xxx@qq.com'
subject = subject msg = MIMEMultipart()
msg['From'] = sender
msg['To'] = receives
msg['Cc'] = cc_receiver
msg['Subject'] = subject
msg.attach(MIMEText(textContent,'plain','utf-8')) os.chdir('H:\\')
with open(sendFileName,'r',encoding = 'utf-8') as fp:
att = MIMEBase('html','html')
att.add_header('Content-Disposion','attachment',filename = sendFileName)
att.set_payload(fp.read())
msg.attach(att) sendmail = smtplib.SMTP()
sendmail.connect('smtp.126.com',25)
sendmail.login('xxx',xxx')
sendmail.sendmail(sender,receives,msg.as_string())
sendmail.quit()

这里把主题、正文和附件文件作为参数代入,函数中的其他变量也可以作为参数输入,个人觉得没什么必要,但可以把其他的一些变量放到文件来读取,这样方便管理

python之发送邮件~的更多相关文章

  1. python大法好——Python SMTP发送邮件

    Python SMTP发送邮件 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. py ...

  2. Python——SMTP发送邮件

    一.定义 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.python的smtplib ...

  3. 用Python自动发送邮件

    用Python自动发送邮件     最近需要在服务器上处理一些耗时比较长的任务,因此想到利用python写一个自动发送邮件的脚本,在任务执行完毕后发送邮件通知我.以下代码以163邮箱为例: 开通163 ...

  4. Appium+python 自动发送邮件(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10056091.html) SMTP:简单传输协议,实在Internet上传输Email的事实标准. Python的s ...

  5. python+selenium 发送邮件

    import time from selenium import webdriver from selenium.webdriver import ChromeOptions from seleniu ...

  6. python smtplib发送邮件遇到的认证问题

    python的smtplib模块主要是用来发送邮件的,使用起来比较方便. 使用程序发送邮件只需要写以下几行代码就OK了: #!/usr/bin/env python import smtplib s ...

  7. python实现发送邮件功能

    '''套接字是为特定的网络协议(例如TCP/IP,ICMP/IP,UDP/IP等),允许程序和接受并进行连接,要在python 中建立具有TCP和流套接字的简单服务器,需要使用socket模块,利用该 ...

  8. python SendMail 发送邮件

    最近在学习python 时,用到了发送邮件的操作,通过整理总结如下: 1.普通文本邮件 普通文本邮件发送的实现,关键是要将MIMEText中_subtype设置为plain,首先导入smtplib和m ...

  9. python模范发送邮件的时候,才smtp.connect的时候总是抛出错误

    python发送邮件的时候,总是出现:[Errno 10060] 错误码 根据debug得到在connect的时候出错. 认真检查了下host,没有错呀~应该就是服务器的host. 查看了下网上的一些 ...

随机推荐

  1. redis、mysql、mongdb的比较

    特点: 1-1 MySQL:1. 使用c和c++编写,并使用了多种编译器进行测试,保证源代码的可移植性2. 支持多种操作系统3. 为多种编程语言提供可API4. 支持多线程,充分利用CPU资源优化的S ...

  2. LR基础理论详解

    本人参考了大神的博客(https://blog.csdn.net/cyh_24/article/details/50359055),写的非常详细,在此整理一下要点 逻辑斯蒂分布 基础公式了解 二项逻辑 ...

  3. 20175126《Java程序设计》第一周学习总结

    # 学号 20175126 <Java程序设计>第一周学习总结   ## 教材学习内容总结   - 1.安装了WINDOS系统的JDK,并学会了利用JDK编写并编译JAVA程序的基本方法. ...

  4. abp xunit Can not register IHostingEnvironment. It should be a non-abstract class. If not, it should be registered before.”

    在测试项目的ServiceCollectionRegistrar类提前注册.

  5. JS同步与异步;

    JS的同步与异步 同步:代买从上往下的执行 异步:每个模块各执行各的,同时执行,互不干扰 四个异步事件:(1)定时器(2)ajax(3)时间的绑定(4)回调函数 现在用定时器来说一说setTimeOu ...

  6. maven 监理web war 项目

  7. MYSQL库,表,记录的基本操作

    数据库操作 1.显示数据库 show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于用户测试数据 information_schema - MySQL本身架构 ...

  8. tornado框架学习及借用有道翻译api做自动翻译页面

    趁着这几天有时间,就简单的学了一下tornado框架,简单做了个自动翻译的页面 仅为自己学习参考,不作其他用途 文件夹目录结构如下: . ├── server.py ├── static │   └─ ...

  9. day 7 编码

    menu = { '北京': { '朝阳': { '国贸': { 'CICC': {}, 'HP': {}, '渣打银行': {} }, '望京': { '陌陌': {}, '奔驰': {} } }, ...

  10. 机器学习面试--一句话概括传统ML算法

    机器学习过程主要包括:数据的特征提取.数据预处理.训练模型.测试模型.模型评估改进等几部分 传统机器学习算法主要包括以下五类: 回归:建立一个回归方程来预测目标值,用于连续型分布预测 分类:给定大量带 ...