#!/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. RESTful简介

    一.RESTful是什么? RESTful架构,就是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展方便,所以正得到越来越多网站的采用.Fielding将他对互联网软件的架构原则, ...

  2. encodeURIComponent(URIstring)

    函数可把字符串作为 URI 组件进行编码.

  3. Closure Compiler应用程序使用入门[译]

    Hello World示例 Closure Compiler应用程序是一个Java 命令行工具,用来对JavaScript代码进行压缩.优化和排错.按照下面的步骤,用一个简单的JavaScript程序 ...

  4. Linux下的文件系统结构

    文章链接:https://blog.csdn.net/qq_38646470/article/details/80159630

  5. Python 循环的技巧

    当在字典中循环时,用 items() 方法可将关键字和对应的值同时取出 >>> knights = {'gallahad': 'the pure', 'robin': 'the br ...

  6. 图形 - bootStrap4常用CSS笔记

    .rounded 图片显示圆角效果 .rounded-circle 设置椭圆形图片 .img-thumbnail 设置图片缩略图(图片有边框) .img-fluid 响应式图片 .float-righ ...

  7. 《Redis设计与实现》阅读笔记(三)--链表

    链表 定义 链表分为两部分,链表节点和持有链表的list结构. 每个链表节点包含前置节点指针,后置节点指针,节点值void*用于保存各种不同类型的值 list结构包含表头节点指针,表尾节点指针,节点数 ...

  8. Streamr助你掌控自己的数据(2)——三种整合数据至Streamr的典型场景

    博客说明 所有刊发内容均可转载但是需要注明出处. 三种整合数据至Streamr的典型场景 本系列文档主要介绍怎么通过Streamr管理自己的DATA,整个系列包括三篇教程文档,分别是:教你5分钟上传数 ...

  9. 学员管理系统(SQLAlchemy 实现)

    一.业务逻辑 二.设计表结构 三.代码结构 start.py import os, sys sys.path.insert(0, os.path.dirname(os.path.dirname(os. ...

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

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