Selenium实战(七)——自动发送邮件

SMPT(Simple Mail Transfer Protocol)简单邮件传输协议,是一组由源地址到目的地址传送邮件的规则,可以控制信件的中转方式。Python的smptlib模块提供了简单的API用来实现发送邮件的功能,它对SMPT进行了简单的封装。

一、python自带的发送邮件功能

1、发送邮件正文

 1 import smtplib
 2 from email.mime.text import MIMEText
 3 from email.header import Header
 4
 5 # 发送邮件主题
 6 subject = ‘hello my dear;‘
 7
 8 # 编写HTML类型的邮件正文
 9 msg = MIMEText(‘<html><h1>helloMMAMAMAAMAM</h1></html>‘, ‘html‘, ‘utf-8‘)
10 msg[‘Subject‘] = Header(subject, ‘utf-8‘)
11 msg[‘from‘] = ‘[email protected]‘
12 msg[‘to‘] = ‘[email protected]‘
13
14 # 发送邮件
15 smtp = smtplib.SMTP()
16 smtp.connect("smtp.126.com")
17 smtp.login("[email protected]", "19970507zudangli")
18 smtp.sendmail("[email protected]", "[email protected]", msg.as_string())
19 smtp.quit()

email模块下面的MIMEText类,定义发送邮件的正文、格式,以及编码,Header类定义邮件的主题和编码类型

smptlib模块用于发送邮件的。connect()方法指定连接的邮箱服务;login()方法指定登录邮箱的账号和密码;sendmail()方法指定发件人、收件人,以及邮件的正文;quit()方法用于关闭邮件服务器的连接。

2、发送带附件的邮件

 1 import smtplib
 2 from email.mime.text import MIMEText
 3 from email.mime.multipart import MIMEMultipart
 4
 5 # 邮件主题
 6 subject = ‘python带附件的发送邮件‘
 7 # 发送的附件
 8 with open(‘test.txt‘, ‘rb‘) as f:
 9     send_att = f.read()
10
11 att = MIMEText(send_att, ‘text‘, ‘utf-8‘)
12 att["Content-Type"] = ‘application/octet-stream‘
13 att["Content-Disposition"] = ‘attachment; filename="I am attachment.txt"‘
14
15
16 msg = MIMEMultipart()
17 msg[‘Subject‘] = subject
18 msg[‘from‘] = ‘[email protected]‘
19 msg[‘to‘] = ‘[email protected]‘
20 msg.attach(att)
21
22 # 发送邮件
23 smtp = smtplib.SMTP()
24 smtp.connect("smtp.126.com")
25 smtp.login("[email protected]", "19970507zudangli")
26 smtp.sendmail("[email protected]", "[email protected]", msg.as_string())
27 smtp.quit()

  首先,读取附件的内容。通过MIMEText类,定义发送邮件的正文、格式,以及编码;

  • Content-Type指定附件内容类型;
  • application/octet-stream表示二进制流;
  • Content-Disposition指定显示附件的文件

  然后,使用MIMEMultipart类定义邮件的主题,attach()指定附件信息。

  最后,通过smtplib模块发送邮件。

二、用yagmail发送邮件

  yagmail是Python的一个第三方库,GitHub项目地址:https://github.com/kootenpv/yagmail

安装命令:pip install yagmail

 1 import yagmail
 2
 3 # 连接邮箱服务器
 4 yag = yagmail.SMTP(user="[email protected]", password="19970507zudangli", host="smtp.126.com")
 5
 6 # 邮件正文
 7 contents = [‘This is the body,and here is just text http://somedomain/image.png‘, ‘You can find an audio file attached.‘]
 8
 9 # 发送邮件
10 yag.send(‘[email protected]‘, ‘subject‘, contents)

如果想给多个用户发送邮件,只需要把收件人放到一个list中即可

yag.send([‘[email protected]‘, ‘[email protected]‘, ‘[email protected]‘], ‘subject‘, contents)

如果想发送带附件的邮件,只需要指定本地附件的路径即可。

1 yag.send([‘[email protected]‘, ‘[email protected]‘, ‘[email protected]‘], ‘subject‘, contents, ["C://Users//zudl//Pictures//timg.jpg","F://秒通OApython//formal.py"])

原文地址:https://www.cnblogs.com/pegawayatstudying/p/12368201.html

时间: 2024-11-02 02:46:18

Selenium实战(七)——自动发送邮件的相关文章

System center 2012 R2 实战七、SCOM2012R2监控Red hat Linux5.7

1    准备工具 u  putty_V0.63.0.0.43510830.exe ------>用于连接到Linux服务器 u  Winscp  ------>用于将windows与 Linux服务器文件互传 2    操作步骤 复制代理至Linux服务器 在SCOM安装光盘中,找到Linux服务器代理 打开Wincap工具,将用于Linux服务器的SCOM代理,复制到Linux服务器根目录下 1            域名解析配置 u  修改Linux服务器主机名称+DNS后缀 u  去D

Python爬虫实战七之计算大学本学期绩点

大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的还是获取它的原理.最主要的是了解cookie的相关操作. 本篇目标 1.模拟登录学生成绩管理系统 2.抓取本学期成绩界面 3.计算打印本学期成绩 1.URL的获取 恩,博主来自山东大学~ 先贴一个URL,让大家知道我们学校学生信息系统的网站构架,主页是 http://jwxt.sdu.edu.cn:

Android切近实战(七)

边看世界杯,边写博客.记得小时候,去山上玩,翻了两座山,到了一个叫克劳的地方.那里每到六月份,桃子,杏多的很,有时候你坐在树上吃一下午都不会有人来,自然了,那里也就人烟稀少.我当时渴急了,在玉米地边上的牛踩出的蹄窝里喝了一口水,那水真是甘甜哪,忽然觉得脚底下什么在动,抬脚一看,一只螃蟹被我踩到了泥土中.那时候吃野枣,自制枪打野鸡,用套套野兔,在河里捉螃蟹,钓鱼,在洪水中游泳,上山挖药,在山上烤红薯,烤玉米,到了冬天,可以点荒,一盒火柴去见识燎原,这都是经常的事.不知道现在我再去那地方还能不能可以

VBS 自动发送邮件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 '--------------------------------------------------------------------------------- '函数名称 : SendMail '函数功能 : 自动发送邮件功能 '函数输入 : SendTo----收

swift学习笔记(七)自动引用计数

与Object-c一样,swift使用自动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例,因为struct和enumeration属于值类型,也就不牵涉引用,所以其存储和管理方式并不是引用计数. 当一个实例被初始化时,系统会自动分配一定的内存空间,用于管理属性和方法.当实例对象不再被使用时,其内存空间被收回. swift中的引用类型分为三种,即Strong强引用,weak弱引用和无主引用unw

Node.js 切近实战(七) 之Excel在线(文件&文件组)

最近西安的天气真他妈的热,感觉还是青海的天气美,最高温28度.上周逛了青海湖,感觉还是意犹未尽,其实我还是很喜欢去一趟西藏的,但是考虑到花费也没人陪我,我暂时放弃这个念头.计划去一下重庆或者甘南,也许是现实的. OK,废话不多说,今天我们来看一下Excel在线部分的文件和文件组.首先我们来看一下页面,调一下胃口.俗话说无图无真相,先看图. 没错,还是Telerik Kendo UI,其实我面试的时候当听到别人说自己用的是EasyUI和ExtJs的时候,我就不那么上心,但是如果有人用的是Kendo

C#自动发送邮件

using System; using System.Collections.Generic; using System.Linq; using System.Net.Mail; using System.Text; using System.Threading.Tasks; namespace QQEmail { class Program { static void Main(string[] args) { for (int i = 0; i < 50; i++) { MailMessag

jenkins配置自动发送邮件

1.开通QQ的SMTP服务,需要发一条短信,qq会给你一个密码(不是你的QQ邮箱密码哦) https://jingyan.baidu.com/album/4b07be3cb2f74148b380f3e4.html?picindex=1 2.安装 Email Extension Plugin 插件 3.管理员邮箱设置 3.1系统管理员邮件地址 3.2  找到 Extended E-mail Notification   jenkins配置自动发送邮件

用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=

颜色函数实战——七色卡

颜色函数实战——七色卡 由于平台编辑器功能有限,下面这个实战项目需要小伙伴们,在自己配置好的 sass 环境的机子上自己操作.下面把项目的步骤教给大家: 常见的颜色就是七彩色,红.橙.黄.蓝.绿.紫.黑.那么我们就使用 Sass 的颜色函数来制作一个这样的色卡.效果图如下: 第一步:编写 html 网页代码 <ul class="swatches red"> <li></li> ... <li></li> </ul>