#!/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. UWP DEP0700: 应用程序注册失败。[0x80073CF9] Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9)

    现在部署的app项目八成是从以前的一个项目复制过来,修改的.或者本地存在一个相同的app没有卸载. 解决方法: 1. 卸载之前相同的app 2.如果是复制的项目A,但是经过修改后变成了项目B,并且A和 ...

  2. ARP 地址分类 NAT技术

    第1章 OSI回顾 1.1 TCP/IP协议族组成 应用层 主机到主机层   互联网层   网络接入层 1.2 总结应用层掌握的协议与端口号对应关系 http(80) telnet(23) ftp(2 ...

  3. python 实现redis订阅发布功能

    redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...

  4. Linux入门基础(六):Linux系统启动

    系统启动流程 BIOS MBR : Boot Code 执行引导程序-GRUB 加载内核 执行init runlevel BIOS BIOS(basic input output system),我们 ...

  5. Python学习之路:NumPy进阶

    import numpy as np; #创建数组的四种办法 ##可以传入任何类数组 a = np.array([0,1,2,3,4]); b = np.array((0,1,2,3,4)); c = ...

  6. 5. 使用Flask蓝图(blueprint)

    一直到现在都没有怎么写代码,可能更得比较慢. 作业回顾 先来看一下文章4的作业吧,使用logbook的时候,遇到了时区不对的情况.那么我们怎么去解决这个问题呢? 实际上logbook默认采用的是世界标 ...

  7. 利用jsencrypt 做非对称加密

    1.生成 private key openssl genrsa -out rsa_1024_priv.pem 1024 2.生成public key openssl rsa -pubout -in r ...

  8. 论文笔记:分形网络(FractalNet: Ultra-Deep Neural Networks without Residuals)

    FractalNet: Ultra-Deep Neural Networks without Residuals ICLR 2017 Gustav Larsson, Michael Maire, Gr ...

  9. sqlmap 进阶 (一)

    0x1 命令 以此类推,可以具体自己研究有哪些参数,放在哪,有什么用,怎么用 参考:https://blog.csdn.net/bo_mask/article/details/76130848 0x2 ...

  10. 满帮集团CEO:未来将向“智慧型”公司转变,要成为一家生态公司

    谁都想成为下一个滴滴.显然,王刚也希望在物流业,货车帮与运满满在合并后,能够企及滴滴的高度. 货车帮与运满满,都曾是货运物流领域的翘楚,也因为业务的竞争关系有过水火不容厮杀.但最终还是在资本与地方政府 ...