【Robotframework】脚本跑完后自动发送邮件

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import smtplib
from email.mime.text import MIMEText
import email.MIMEMultipart
from email.header import Header
import os
import mimetypes

def send_email(file_names=[]):
    # 第三方 SMTP 服务
    receivers= [‘[email protected]‘]
    test_result=0
    print receivers
    mail_host="smtp.qq.com"  #设置服务器
    mail_user="[email protected]"    #用户名
    mail_pass="jnqatqlyepmpbcgi"   #口令,QQ邮箱是输入授权码,在qq邮箱设置 里用验证过的手机发送短信获得,不含空格
    sender = ‘[email protected]‘

    #设置邮件中的测试结果
    resultstr = ‘失败‘ if test_result else ‘通过‘

    main_msg = email.MIMEMultipart.MIMEMultipart()
    message = MIMEText(‘‘‘附件是本次自动化构建的报告,请注意查收 \n\n‘‘‘, ‘plain‘, ‘utf-8‘)
    main_msg.attach(message)
    result = MIMEText(‘测试结果: ‘+resultstr, ‘plain‘, ‘utf-8‘)
    main_msg.attach(result)
    ## 读入文件内容并格式化
    for file_name in file_names:
        data = open(file_name, ‘rb‘)
        ctype,encoding = mimetypes.guess_type(file_name)
        if ctype is None or encoding is not None:
            ctype = ‘application/octet-stream‘
        maintype,subtype = ctype.split(‘/‘,1)
        file_msg = email.MIMEBase.MIMEBase(maintype, subtype)
        file_msg.set_payload(data.read())
        data.close()
        email.Encoders.encode_base64(file_msg)#把附件编码

        basename = os.path.basename(file_name)
        file_msg.add_header(‘Content-Disposition‘,‘attachment‘, filename = basename)#修改邮件头
        main_msg.attach(file_msg)

    main_msg[‘From‘] = Header("robot自动发送", ‘utf-8‘)
    reciverstr = ‘;‘.join(receivers)
    main_msg[‘To‘] = Header(reciverstr, ‘utf-8‘)

    subject = ‘robotframework测试结果‘
    main_msg[‘Subject‘] = Header(subject, ‘utf-8‘)

    try:
        smtpObj = smtplib.SMTP_SSL()
        smtpObj.connect(mail_host, 465)
        smtpObj.login(mail_user,mail_pass)
        smtpObj.sendmail(sender, receivers, main_msg.as_string())
        print "邮件发送成功。"
    except smtplib.SMTPException, e:
        print "Error: 无法发送邮件。错误原因:", e
send_email(file_names=[‘E:\\pics\\1.png‘,‘E:\\pics\\2.jpg‘])

原文地址:https://www.cnblogs.com/bashaowei/p/9337239.html

时间: 2024-08-05 15:49:12

【Robotframework】脚本跑完后自动发送邮件的相关文章

用shell脚本监控linux系统 自动发送邮件

此脚本可以做一个定时的检测,超出设定的值,即往邮箱发送警告 脚本用到bc,sendmail,163邮箱, yum install bc #!/bin/bash #System Monitoring Script while [ 1 ] do #本机需开启postfix或sendmail服务. #报警邮件地址设置 [email protected] [email protected] #设置脚本运行间隔时间.单位(秒). RUNTIME=900 #内存使用率监控设置,单位 (%) MEMTHRE=

解决 Scrapy-Redis 空跑问题,链接跑完后自动关闭爬虫

Scrapy-Redis 空跑问题,redis_key链接跑完后,自动关闭爬虫 问题:scrapy-redis框架中,reids存储的xxx:requests已经爬取完毕,但程序仍然一直运行,如何自动停止程序,结束空跑. 分布式扩展: 我们知道 scrapy 默认是单机运行的,那么scrapy-redis是如何把它变成可以多台机器协作的呢? 首先解决爬虫等待,不被关闭的问题: 1.scrapy内部的信号系统会在爬虫耗尽内部队列中的request时,就会触发spider_idle信号. 2.爬虫的

ETL过程跑完后,使用python发送邮件

目标库中,如果有行数为0的表,使用python发送邮件 # -*- coding:utf-8 -*- # Author: zjc # Description:send monitor info to someone. # Date: 20170718 import contextlib import pymysql import smtplib from email.mime.text import MIMEText # 监控信息变量 TABLE_SCHEMA_LIST = ('db-name1

Scrapy-Redis 空跑问题,redis_key链接跑完后,自动关闭爬虫

首先解决爬虫等待,不被关闭的问题: 1.scrapy内部的信号系统会在爬虫耗尽内部队列中的request时,就会触发spider_idle信号. 2.爬虫的信号管理器收到spider_idle信号后,将调用注册spider_idle信号的处理器进行处理. 3.当该信号的所有处理器(handler)被调用后,如果spider仍然保持空闲状态, 引擎将会关闭该spider. scrapy-redis 中的解决方案 在信号管理器上注册一个对应在spider_idle信号下的spider_idle()方

Jenkins自动发送邮件配置及定时构建

前言 在配置之前,我们需要安装好Jenkins,对于如何安装不在赘述,看我之前一篇安装教程(或者找度娘,教程很多).接下来我们开始详细讲解build运行完成后自动发送邮件和定时自动构建build 系统配置 安装插件 我们在安装Jenkins的时候可以选择安装,也可以在安装之后选择安装需要的插件 1.点击Jenkins面板[Manage Jenkins] 2.管理Jenkins页面选择[Manage Plugins]插件管理 3.切换窗口到可选插件,右上角搜索插件Email Extension T

【转】Shell脚本交互之:自动输入密码

平时在控制台输入指令如:sudo.ssh.ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密码呢? 下面总结三种实现方法: 一.重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码 shell用重定向作为标准输入的用法是:cmd<<delimiter ,shell 会将分界符delimiter之后直到下一个同样的分界符之前的内容作为输入 实现ftp自动登录

Shell脚本交互之:自动输入密码

Shell脚本交互之:自动输入密码 2016年04月09日 19:41:26 zhangjikuan 阅读数:58208 标签: Shell交互自动输入密码expect重定向管道 更多 个人分类: ARM/linux 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhangjikuan/article/details/51105166 平时在控制台输入指令如:sudo.ssh.ftp或者修改admin权限的文件时候都会要求输入password,

js实现网页多少秒后自动跳转到指定网址

在网上搜了一下,关于这个技术处理有多种方法,我只记下我在视频里学到的三种: 1.用一个response.sendRedirect("目标页面.jsp\.htm");实现直接跳转: 2.有时我们需要有点提示,比如“x秒后自动跳转,若没有跳转,请点击此处”,则可以在myeclipse中调用Snippets中的Delay Go To URL.会自动生成如下代码: 代码如下: <script language="JavaScript1.2" type="te

VBS脚本和HTML DOM自动操作网页

VBS脚本和HTML DOM自动操作网页 2016-06-16 10:24 1068人阅读 评论(0) 收藏 举报  分类: Windows(42)  版权声明:本文为博主原创文章,未经博主允许不得转载. 本来是想通过JS实现对其他页面的控制,发现跨域无法获取页面DOM来操作.接着考虑bat,发现也实现不了,于是想到vbs.vbs还是很强大啊,病毒之类很多都是vbs脚本啊.vbs打开浏览器,然后通过dom来操作页面,可以实现自动填写内容和按钮点击等.摸索了几个常用的,代码如下: 1.网页文本框赋