#!/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自动化之邮件发送的更多相关文章

  1. python 自动化实现定时发送html报告到邮箱

    # coding =utf-8 import os import unittest import time import datetime import smtplib from email.mime ...

  2. 多测师讲解自动化 _邮件发送_高级讲师肖sir

    第一步.进入如下网址申请163邮箱. https://mail.163.com/ 第二步.注册完之后登录.点击如下图设置­点击POP3/SMTP/IMAP. 第三步.右侧点击客户端授权密码. 第四步. ...

  3. Selenium+Python之163邮件发送

    今晚写了一个163邮箱登录的脚本,由于不停的访问163登录主页导致直接访问163邮箱主页登录需要输入验证码,因为无法获取到验证码,就这导致直接访问主页登录脚本不可行,为了绕过验证码,现在先访问hao1 ...

  4. 【python】smtp邮件发送

    纯文本: #!/usr/bin/env python3 #coding: utf-8 import smtplib from email.mime.text import MIMEText from ...

  5. 用python SMTP进行邮件发送

    import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart & ...

  6. python SMTP邮件发送(转载)

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

  7. python selenium2示例 - email发送

    前言 在进行日常的自动化测试实践中,我们总是需要将测试过程中的记录.结果等等等相关信息通过自动的手段发送给相关人员.python的smtplib.email模块为我们提供了很好的email发送等功能的 ...

  8. 测试开发【提测平台】分享11-Python实现邮件发送的两种方法实践

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 按照开发安排,本篇本应该是关于提测页面的搜索和显示实现,怕相似内容疲劳,这期改下内容顺序,将邮件服务的相关的提前,在之前的产品需求和原型中 ...

  9. 【Python + Selenium3】自动化测试之DDT数据驱动并生成测试报告以及用yagmail邮件发送文件

    我的文件路径 一.DDT代码: import unittest from time import sleep from selenium import webdriver from ddt impor ...

随机推荐

  1. Python中re模块详细介绍

    正则的介绍及应用实例详解 """ 1.什么是正则 正则就是用一系列具有特殊含义的字符组成一套规则,该规则用来描述具有某一特征的字符串, 正则就是用来去一个大的字符串中匹配 ...

  2. [Vue warn]:vue-Failed to resolve directive: clipboard

    前言 需求:移动端需要一个按钮,复制到剪切板,分享给好友(没有调用微信内置的分享接口) 插件 vue-clipboard2 环境:vue,node 安装:npm install --save vue- ...

  3. jquery inArray()函数详解

    jquery inarray()函数详解 jquery.inarray(value,array)确定第一个参数在数组中的位置(如果没有找到则返回 -1 ). determine the index o ...

  4. 【Go】累加器的测试问题记录

    关于GoLang学习过程中的一个问题mark,教程上说两个累加器的地址应该是不一样的,但是实际测试出来结果一样 package main import( "fmt" ) func ...

  5. 正确配置 debian squeeze apt 源

    本想在 Debian Squeeze 上安装一些依赖,没想到刚执行 apt-get update ,就出现这样的错误信息. W: GPG error: http://mirrors.163.com s ...

  6. yocto-sumo源码解析(八): ProcessServer

    从前面章节的论述中,我们知道BitBakeServer实际上是一个ProcessServer,什么是ProcessServer不可不了解. 1. 类的声明: 首先这是一个python的多进程包里面的进 ...

  7. docker 从本地拷贝文件

    1.找到docker的ID全称 docker inspect -f '{{.Id}}' docker_name 2.执行拷贝命令 docker cp 本地文件路径 ID全称:docker路径 3.如果 ...

  8. centos6.9 安装完xampp 7.2.0后,执行/opt/lampp/lampp报错

    # /opt/lampp/lampp egrep: error while loading shared libraries: libc.so.6: cannot open shared object ...

  9. Django_用户权限管理rbac

    组成部分 1.初始化权限:login视图initial_permission,把权限信息放入session.initial_permission函数生成权限列表.菜单列表 2.中间件验证权限:在第一次 ...

  10. jaxb教程(忘记了过来看看)

    链接 原文链接