Selenium+python自动化22-发送各种类型附件邮件

前言

最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了!

基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分。如果是附件,则add_header加入附件的声明。
在python中,MIME的这些对象的继承关系如下。
MIMEBase
   |-- MIMENonMultipart
       |-- MIMEApplication
       |-- MIMEAudio
       |-- MIMEImage
       |-- MIMEMessage
       |-- MIMEText
   |-- MIMEMultipart
一般来说,不会用到MIMEBase,而是直接使用它的继承类。MIMEMultipart有attach方法,而MIMENonMultipart没有,只能被attach。
MIME有很多种类型,这个略麻烦,如果附件是图片格式,我要用MIMEImage,如果是音频,要用MIMEAudio,如果是word、excel,我都不知道该用哪种MIME类型了,得上google去查。
最懒的方法就是,不管什么类型的附件,都用MIMEApplication,MIMEApplication默认子类型是application/octet-stream。
application/octet-stream表明“这是个二进制的文件,希望你们那边知道怎么处理”,然后客户端,比如qq邮箱,收到这个声明后,会根据文件扩展名来猜测。
废话不多说,上代码:
#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
_user = "9759***[email protected]"
_pwd  = "vaz*****yzabebf"  #服务器授权码
_to   = "224***[email protected]"
msg = MIMEMultipart()
msg["Subject"] = "测试一下"  #邮件标题
msg["From"]    = _user
msg["To"]      = _to

文字部分

part = MIMEText("你好")
msg.attach(part)

附件部分

xlsx类型附件

part = MIMEApplication(open(‘D:\Tyrone.xlsx‘,‘rb‘).read())
part.add_header(‘Content-Disposition‘, ‘attachment‘, filename="Tyrone.xlsx")   #这边的filename随便写,完全看你心情,但是后缀的格式一定要统一
msg.attach(part)

jpg类型附件(png类型和jpg一样)

part = MIMEApplication(open(‘D:\Tyrone.jpg‘,‘rb‘).read())
part.add_header(‘Content-Disposition‘, ‘attachment‘, filename="Tyrone.jpg")
msg.attach(part)

pdf类型附件

part = MIMEApplication(open(‘D:\Tyrone.pdf‘,‘rb‘).read())
part.add_header(‘Content-Disposition‘, ‘attachment‘, filename="Tyrone.pdf")
msg.attach(part)

mp3类型附件

part = MIMEApplication(open(‘D:\Tyrone.mp3‘,‘rb‘).read())
part.add_header(‘Content-Disposition‘, ‘attachment‘, filename="Tyrone.mp3")
msg.attach(part)

try:
   s = smtplib.SMTP_SSL("smtp.qq.com", 465)   #发件邮箱的服务器以及端口
   s.login(_user, _pwd)
   s.sendmail(user, _to, msg.asstring())
   s.quit()
   print "完美!"
except smtplib.SMTPException,e:
   print "失败!"

原文地址:https://www.cnblogs.com/jason89/p/9028154.html

时间: 2024-08-30 11:07:48

Selenium+python自动化22-发送各种类型附件邮件的相关文章

Selenium2+python自动化22-发送各种类型附件邮件

前言 最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了! 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分.如果是附件,则add_header加入附件的声明.在python中,MIME的这些对象的继承关系如下.MIMEBase |-- MIMENonMultipart |-- MIMEApplication |-- MIMEAudio |-- MIMEImage |-- MIMEMe

Selenium2+python自动化22-发送各种类型附件邮件【转载】

前言 最近一些小伙伴,在搞邮箱的事情,小编于是去折腾了一下!总结了一些干货,与大家分享一下!速来,抱大腿,我要开车了! 基本思路就是,使用MIMEMultipart来标示这个邮件是多个部分组成的,然后attach各个部分.如果是附件,则add_header加入附件的声明.在python中,MIME的这些对象的继承关系如下.MIMEBase|-- MIMENonMultipart|-- MIMEApplication|-- MIMEAudio|-- MIMEImage|-- MIMEMessage

selenium+python自动化98--文件下载弹窗处理(PyKeyboard)

前言 在web自动化下载操作时,有时候会弹出下载框,这种下载框不属于web的页面,是没办法去定位的(有些同学一说到点击,脑袋里面就是定位!定位!定位!) 有时候我们并不是非要去定位到这个按钮再去点击,学会使用键盘的快捷键操作,也能达到一样的效果. 之前讲过一篇Selenium2+python自动化75-非input文件上传(SendKeys)这个当时是基于python2写的. 最近很多小伙伴开始用python3了,这个SendKeys在python3上没法用,python3需要用PyUserIn

Pycharm+Selenium Python 自动化搭建

Pycharm+Selenium  自动化搭建 一,按照博客链接安装: (1)Pycharm+Selenium Python 自动化搭建 (2) 下载chrom对应版本chromdriver http://chromedriver.chromium.org/downloads (3)解压放在python37目录下 二,创建后代码 (1)代码: from selenium import webdriver options = webdriver.ChromeOptions() options.bi

【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ···························································································································

Selenium+python自动化21-TXT数据参数化

前言      在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一.以百度搜索为例,自动搜索五次不同的关键字.输入的数据不同从而引起输出结果的变化. 测试脚本: 1 #coding=utf-8 2 from selenium import webdriver 3 import unittest, time, os 4 class Login(unittest.TestCase): 5 def test_login(self):

selenium+python自动化77-autoit文件上传【转载】

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化77-autoit文件上传

前言 关于非input文件上传,点上传按钮后,这个弹出的windows的控件了,已经跳出三界之外了,不属于selenium的管辖范围(selenium不是万能的,只能操作web上元素).autoit工具处理windows的控件窗口是专业的,所以这个需借助AutoIt来解决了. 一.环境准备 1.可以autoit官网上下载,安装 http://www.autoitscript.com/site/ 2.下载到本地后傻瓜式安装,安装完之后在应用程序找到这个Autoit v3 3.AutoIt里面几个菜

selenium+python自动化78-autoit参数化与批量上传

前言 前一篇autoit实现文件上传打包成.exe可执行文件后,每次只能传固定的那个图片,我们实际测试时候希望传不同的图片.这样每次调用的时候,在命令行里面加一个文件路径的参数就行. 一.命令行参数 1.参数化传入的参数,可以通过autoit的命令行参数: ```    myProg.exe param1 "This is a string parameter" 99``` 在脚本中,可用以下变量获取命令行参数: ```$CmdLine[0] ; = 3$CmdLine[1] ; =