import os
import smtplib
# 处理多种形态的邮件主体我们需要 MIMEMultipart 类
from email.mime.multipart import MIMEMultipart
# 发送字符串的邮件
from email.mime.text import MIMEText# 不管什么类型的附件,都可以用MIMEApplication
from email.mime.application import MIMEApplication def email_send(data_f_p_t, page_file_list, content="数据报", content_text=None):
"""
发送邮件 服务器所需信息 文件路径 邮件内容设置
:param data_f_p_t: 字典形式
fromaddr: 邮件发送方邮箱地址
password: 密码(部分邮箱为授权码)
toaddrs: 邮件接受方邮箱地址 为列表形式 可以 群发
email_site: 发送方的 邮箱服务器地址
:param page_file_list: 文件路径 列表
:param content: 邮件标题
:param content_text: 内容
:return:
"""
fromaddr = data_f_p_t['fromaddr']
password = data_f_p_t['password']
toaddrs = data_f_p_t['toaddrs'] # 接收方邮件地址
email_site = data_f_p_t['email_site'] # 构造一个邮件体:正文 附件
message = MIMEMultipart() # 邮件内容设置 content 邮件 文本内容
if content_text:
textApart = MIMEText(content_text)
message.attach(textApart) # 循环添加 附件 路径
for page_file in page_file_list:
page_file_txt = os.path.basename(page_file) # 获取 文件名
# 邮件 附件 设置
zipApart = MIMEApplication(open(page_file, 'rb').read())
# excel 注意:此处basename要转换为gbk编码,否则中文会有乱码
zipApart.add_header('Content-Disposition', 'attachment',
filename=('gbk', '', page_file_txt))
message.attach(zipApart) # 放入附件 # message.attach(textApart) # 放入邮件 内容
message['From'] = fromaddr # 发件人
message['To'] = ','.join(toaddrs) # 收件人
message['Subject'] = content # 设置邮件标题 try:
# # 163 SMTP_SSL 邮箱服务器地址,端口默认为465
# server = smtplib.SMTP_SSL(email_site)
# 163 SMTP_SSL 邮箱服务器地址,端口默认为465
server = smtplib.SMTP_SSL(email_site) server.login(fromaddr, password) # 登陆邮箱
server.sendmail(fromaddr, toaddrs, message.as_string()) # 发送邮件!
print('success')
server.quit() # 退出
except smtplib.SMTPException as e:
print('error:', e) # 打印错误

SMTP模块发送邮件的更多相关文章

  1. python smtp模块发送邮件

    应用场景: 在服务器上设置的告警参数被触发后,通常是发送手机短信或者邮件通知,本例就以发送邮件为例,手机怎么收邮件呢?以qq邮箱为例,在手机端安装qq邮箱app,触发邮件后,手机也能及时查看了 代码展 ...

  2. $Django 发送邮件--django封装模块和python内置SMTP模块

    一 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Header m ...

  3. python之使用smtplib模块发送邮件

    # 使用smtplib模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Heade ...

  4. python之smtplib模块 发送邮件

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #smtplib模块 发送邮件 import smtplib from email.mime.text imp ...

  5. Linux 上使用 Gmail SMTP 服务器发送邮件通知

    导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm ...

  6. 微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件

    原文:微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件 开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent ...

  7. Net SMTP QQ 发送邮件

    调用DEMO var currUser = new List<string> { "123@qq.com" , "123@qq.com" , &qu ...

  8. JavaMail SMTP服务器发送邮件程序示例 java通过dns服务器解析ip地址

    /** * JavaMail SMTP服务器发送邮件程序示例 * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 ...

  9. Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件

    使用本地服务发邮件,经常被过滤掉而且占用资源,发送成功率不高.所以使用外部SMTP服务器发送邮件成为了需求. SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰,简单地说就是要求必须在提供了账户名和 ...

随机推荐

  1. 云服务器centos系统安装python

    1.查看python的版本 $ cd /usr/bin/$ ls python* $ ls -al python* //查看依赖关系 2.如果版本不合适可以卸载python再重新安装 # rpm -q ...

  2. PAT-1005 Spell It Right 解答(C/C++/Java/python)

    1.Description: Given a non-negative integer N, your task is to compute the sum of all the digits of  ...

  3. AMD R2600+微星B450迫击炮配置的新工作机,分享给大家

    上个月,突然觉得自己总做用的电脑有点老了,虽然很不舍陪自己战斗了3,4年的老战士,下了很大的决心,才决定搞一台新的吧,虽然新电脑的配置也不算非常高,但是用于开发的话,也算不错的选择了,特此分享一下.又 ...

  4. StarUML之八、StarUML的Entity-Relationship Diagram(实体关系图)示例

    数据库表关系设计也是常有场景,本章介绍如何设计一个实体关系图 1:新建项目,在Model Explore中Add Diagram | ER Diagram到指定的元素中: 2:从Toolbox中创建E ...

  5. 检测APK是否存在Janus漏洞步骤

    Janus说明   Android APP仅使用V1签名,可能存在Janus漏洞(CVE-2017-13156),Janus漏洞(CVE-2017-13156)允许攻击者在不改变原签名的情况下任意修改 ...

  6. 泡泡后台Couchbase缓存使用经验分享

    一.导读 爱奇艺的社交业务“泡泡”,拥有日活用户6千万+,后台系统每日高峰期间接口QPS可以达到80K+,与视频业务的主要区别是泡泡业务更多地引入了与用户互动相关的数据,读.写的量均很大.无论是庞大的 ...

  7. 「Flink」Flink的状态管理与容错

    在Flink中的每个函数和运算符都是有状态的.在处理过程中可以用状态来存储数据,这样可以利用状态来构建复杂操作.为了让状态容错,Flink需要设置checkpoint状态.Flink程序是通过chec ...

  8. kuangbin专题 专题九 连通图 POJ 3177 Redundant Paths

    题目链接:https://vjudge.net/article/371?tdsourcetag=s_pcqq_aiomsg 题目:给定一个连通图,题目说,任意两个点至少有一条路线可以相互到达, 为保证 ...

  9. Git命令行操作方法

    1.GitHub上创建一个Repositories(仓库),并复制仓库地址

  10. sqlserver2014部署安装

    百度云网址链接: https://pan.baidu.com/s/1BwgdnESI8Fqlos9EIOLv1A 提取码: wsy5 1.解压ISO镜像文件,点击setup安装程序 2.进入安装界面 ...