1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

时间:2019-11-15 23:28:08

相关推荐

python 自动化发送邮件_Python自动化必备发送邮件报告脚本详解

#!/usr/bin/python3

# -*- coding:UTF-8 -*-

import smtplib

#smtplib库主要用来连接第三方smtp库,用来发邮件

from email.mime.text import MIMEText

from email.header import Header

from email.mime.multipart import MIMEMultipart

#email库主要用来定义邮件的格式,发送人,接收人,邮件标题,邮件正文

smtp_server = ''

smtp_user = '185xxxxx@'

smtp_pwd = 'xxxxxxx'

#user和pwd是用来连接,不是邮箱的密码。需要在邮箱里设置一下。

sender = smtp_user

#发送人

receivers = ["xxxxxx", "xxxxxxx"]

#接收邮件的邮箱列表

msg = MIMEMultipart()

#创建MIMEMultipart()实例,用于构建附件

msg['From'] = Header('张xx<18519xxxxx>', 'utf-8')

subject = 'Python final Mail'

msg['Subject'] = Header(subject, 'utf-8')

#创建邮件的发送人和主题

with open('mail.html', 'r', encoding='UTF-8') as fp:

mail_msg = fp.read()

msg.attach(MIMEText(mail_msg, 'html', 'utf-8'))

#读取mail.html文件,发送html文本

att1 = MIMEText(open('mail1.txt', 'rb').read(), 'base64', 'utf-8')

att1["Content-Type"] = 'application/octet-stream'

att1["Content-Disposition"] = 'attachment; filename="mail1.txt"'

msg.attach(att1)

#创建附件1

att2 = MIMEText(open('runoob.txt', 'rb').read(), 'base64', 'utf-8')

att2["Content-Type"] = 'application/octet-stream'

att2["Content-Disposition"] = 'attachment; filename="runoob.txt"'

msg.attach(att2)

#创建附件2

sm = smtplib.SMTP()

sm.connect(smtp_server, 25)

sm.login(smtp_user, smtp_pwd)

#连接smtp服务器,并登陆

try:

for rec in receivers:

msg['To'] = rec

sm.sendmail(sender, rec, msg.as_string())

#发送邮件

print("Send mail to {0} succeed".format(rec))

except smtplib.SMTPException:

print("Send mail to {0} fail".format(rec))

sm.quit()

#关闭连接

Python中&percnt;r和&percnt;s的详解及区别&lowbar;python&lowbar;脚本之家

Python中%r和%s的详解及区别_python_脚本之家 /article/108589.htm

python&plus;requests接口自动化测试框架实例详解

python+requests接口自动化测试框架实例详解 转自/u/3041656/blog/820023 摘要: python + requests实 ...

自动化运维工具——ansile详解

自动化运维工具——ansible详解(一) 目录 ansible 简介 ansible 是什么? ansible 特点 ansible 架构图 ansible 任务执行 ansible 任务执行模式 ...

Python爬虫之selenium库使用详解

Python爬虫之selenium库使用详解 本章内容如下: 什么是Selenium selenium基本使用 声明浏览器对象 访问页面 查找元素 多个元素查找 元素交互操作 交互动作 执行JavaS ...

python中的subprocess&period;Popen&lpar;&rpar;使用详解---以及注意的问题(死锁)

从python2.4版本开始,可以用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值. subprocess意在替代其他几个老的模块或者函数 ...

Python学习一:序列基础详解

作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:/NiceCui/p/7858473.html 邮箱:moyi@moyib ...

Python学习二:词典基础详解

作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:/NiceCui/p/7862377.html 邮箱:moyi@moyib ...

python 3&period;x 爬虫基础---Urllib详解

python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ...

python中argparse模块用法实例详解

python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...

随机推荐

浅谈iOS开发中方法延迟执行的几种方式

Method1. performSelector方法 Method2. NSTimer定时器 Method3. NSThread线程的sleep Method4. GCD 公用延迟执行方法 - (vo ...

android 回车键事件编程

实现android按下回车键便隐藏输入键盘,有两种方法: 1.)如果布局是多个EditText,为每个EditText控件设置android:singleLine=”true”,弹出的软盘输入法中回车 ...

Bash远程文件传输命令scp

备份远程文件(远程——>本地) scp -r 远程用户名@ip:文件绝对路径 本地绝对路径 还原远程文件(本地——>远程) scp -r 本地路径 远程用户名@ip:远程绝对路径 如果SS ...

JFreeChart当鼠标停留在热点提示自定义信息功能

当鼠标停留在数据点时,希望有提示信息显示,但是根据业务需要,我们需要自定义显示一下信息!具体功能实现如下: 首先我们要弄明白,Jfreechart鼠标提示信息显示主要是得到一个数据的map对象,该ma ...

moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)

/*! * \file main.cpp * * Copyright (C) , dbzhang800 * All rights reserved. * */ #include

odi增量更新策略

增量更新策略:通过一个“update key”比较流数据记录与目标表中的记录比较进行数据整合.具有相同“update key”的记录当相关联列不同时将被更新:在目标表中不存在的记录将被插入.这种方式用 ...

现代控制理论习题解答与Matlab程序示例

现代控制理论习题解答与Matlab程序示例 现代控制理论 第三版 课后习题参考解答: /detail/zhangrelay/9544934 下面给出部分 ...

Nginx&plus;Tomcat搭建高性能负载均衡集群

一. 工具 nginx-1.8.0 apache-tomcat-6.0.33 二. 目标 实现高性能负载均衡的Tomcat集群: 三. 步骤 1.首先下载Nginx ...

July 07th&period; &comma; Week 27th&period; Saturday

Soon is not as good as now. 别谈未来,现在就行动. From Seth Godin. I always told myself that I should finish w ...

Python IO模型

这篇博客是本人借鉴一些大神的博客并结合自己的学习过程写下的. 事件驱动模型 事件驱动模型是一种编程范式,这里程序的执行流由外部事件来决定.它的特点是包含一个事件循环,当外部事件发生时,不断从队列里取出 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。