自定义了一个email模块,符合大多数人的使用习惯
# coding: utf-8 import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
import re def e_mail(smtpserver ='smtp.163.com',
username='自己邮箱账号',
password='自己邮箱授权码',
receiver='目标邮箱地址',
subject='邮件主题',
text='邮件内容',
sendfiles=None, # 附件
): """
此函数用以发送邮件
参数说明:smtpserver为smtp服务器
username为发送者邮箱用户名
password为发送者邮箱密码/授权码
receiver为接收者邮箱(可以有多个,用','分隔)
subject为邮件主题
text为邮件内容
sendfiles为附件路径(可以有多个,用','分隔)
注:所有参数均为字符串类型 """ # 发件人
sender = username # 收件人(可以为多个收件人)
# receivers = ['aaakkkbbbaaa2@163.com', 'liwei@staff.cntv.cn']
receivers = []
for i in receiver.split(','):
receivers.append(i) # 邮件标题
subject = Header(subject, 'utf-8').encode() # 邮件内容
main_body = text # 构造邮件对象
msg = MIMEMultipart('mixed') # 将邮件标题、发件人、收件人加入邮件对象。
msg['Subject'] = subject
msg['From'] = '%s <%s>' % (username, username)
# msg['To'] = 'XXX@126.com'
# 收件人为多个收件人,通过join将列表转换为以;为间隔的字符串
msg['To'] = ";".join(receivers)
# msg['Date']='2012-3-16' # 将邮件内容加入邮件对象
if text:
# 编码文字内容
text_plain = MIMEText(main_body, 'plain', 'utf-8')
# 将文字内容加入邮件对象
msg.attach(text_plain) # 将附件加入邮件对象
if sendfiles:
# 遍历所有附件
for i in sendfiles.split(','):
# 加载附件
sendfile = open(r'%s' % i, 'rb')
sendfile = sendfile.read()
text_att = MIMEText(sendfile, 'base64', 'utf-8')
text_att["Content-Type"] = 'application/octet-stream'
# 为附件命名
try:
file_name = re.match(r'.*[\\/](.*)$', i).group(1)
except AttributeError:
file_name = i
text_att.add_header('Content-Disposition', 'attachment', filename=file_name)
# 将附件加入邮件对象
msg.attach(text_att) # 发送邮件
smtp = smtplib.SMTP()
smtp.connect(smtpserver)
# 用set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息。
# smtp.set_debuglevel(1)
smtp.login(username, password)
smtp.sendmail(sender, receivers, msg.as_string())
smtp.quit()
return '邮件发送完毕' if __name__ == '__main__':
e_mail(sendfiles=r'C:\Users\Administrator\Desktop\结果.png,C:\Users\Administrator\Desktop\Agent说明文档.txt')
自定义了一个email模块,符合大多数人的使用习惯的更多相关文章
- python email模块
python email模块 官方文档 email模块 电子邮件包是一个用于管理电子邮件消息的库.它的特殊设计不用于向SMTP (RFC 2821).NNTP或其他服务器发送任何电子邮件消息;这些是模 ...
- Python_使用smtplib和email模块发送邮件
[http://blog.csdn.net/menglei8625/article/details/7721746] SMTP (Simple Mail Transfer Protocol) 邮件传送 ...
- C程序中引用自定义的C函数模块
原文:C程序中引用自定义的C函数模块 我们知道,刚开始接触C语言编程,一般都是在一个.c或者.cpp(以下只说.c)的文件中编写代码,其中一定会有一个入口函数, 也就是main()函数,你可以将程序代 ...
- python email ==> send 发送邮件 :) [smtplib, email 模块]
关于Email的预备知识: 原贴地址:http://www.cnblogs.com/lonelycatcher/archive/2012/02/09/2343480.html ############ ...
- 使用spring EL表达式+自定义切面封装缓存模块
需求是这样的,业务代码需要使用到缓存功能以减少数据库压力,使用redis来实现,并且需要生成缓存的key由方法的传参拼接而成(貌似也只能这样才能保证同样的select查询可以使用缓存),简单的方式就是 ...
- python+selenium之自定义封装一个简单的Log类
python+selenium之自定义封装一个简单的Log类 一. 问题分析: 我们需要封装一个简单的日志类,主要有以下内容: 1. 生成的日志文件格式是 年月日时分秒.log 2. 生成的xxx.l ...
- smtplib与email模块(实现邮件的发送)
SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件. Python对SMTP支持有smtplib和email两个模块,email负责构造邮件, ...
- Python使用SMTP模块、email模块发送邮件
一.smtplib模块: 主要通过SMTP类与邮件系统进行交互.使用方法如下: 1.实例化一个SMTP对象: s = smtplib.SMTP(邮件服务地址,端口号) s = smtplib.SMTP ...
- Python之自定义封装一个简单的Log类
参考:http://www.jb51.net/article/42626.htm 参考:http://blog.csdn.net/u011541946/article/details/70198676 ...
随机推荐
- 京东Alpha平台开发笔记系列(一)
2018京东Alpha开发者大赛是由京东智能面向广大开发者举办的大型语音技能开发比赛,参赛者将通过Skill开放平台开发技能,在实现开发者自身价值的同时,为京东智能活跃用户提供更优质.更便捷.更智能的 ...
- 检测MySQL主从备份是否运行
通过查看 slave 状态,确保 Slave_IO_Running: Yes Slave_SQL_Running: Yes #!/bin/bash#Author:Darius-Dmysql -uro ...
- jsp获取当前项目跟路径
在jsp中获取当前项目的根路径: <% String basePath = request.getScheme() + "://"+ request.getServerNam ...
- 解决windows server在关闭远程桌面后开启的服务也随之关闭的问题
首先远程登录服务器,关闭所有tomcat进程以及所有java进程,使用 netstat命令检查tomcat端口是否仍在监听状态,如仍在监听,使用taskkill杀死进程, 接下来关闭系统tomcat服 ...
- 20155326《网络对抗》Web安全基础实践
20155326<网络对抗>Web安全基础实践 实验后回答的问题 SQL注入攻击原理,如何防御? 原理:SQL注入攻击指的是在Web应用对后台数据库查询语句处理存在的安全漏洞,通过构建特殊 ...
- idea 中dao层自动生成接口
1.在生成接口的类上右键 2.选中要生成的接口方法 3.点击Yes 4.出现(? reference in ? file)即生成成功
- 数据库(mysql)相关知识
单表查询 排序 升序 select*from表名 order by字段 asc; 降序 select*from表名 order by字段 desc; 条件查询(包括通配符) ...
- pytorch 损失函数
pytorch损失函数: http://blog.csdn.net/zhangxb35/article/details/72464152?utm_source=itdadao&utm_medi ...
- MVC项目加入WebApi
一.NuGet搜索安装Microsoft.AspNet.WebApi,注意引用的版本依赖,因为是在完整的MVC项目上新增,在本地编译调试并没有报错,发布到IIS后却显示应用程序出错. 二.NuGet搜 ...
- day21_雷神_django第四天
django第四天 1.form组件 解决两个事情: 不想重复提交,数据重置: 校验规则 流程: (1) 创建form组件对应的类,比如LoginForm (2) views.login: if ge ...