SMTP模块发送邮件
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模块发送邮件的更多相关文章
- python smtp模块发送邮件
应用场景: 在服务器上设置的告警参数被触发后,通常是发送手机短信或者邮件通知,本例就以发送邮件为例,手机怎么收邮件呢?以qq邮箱为例,在手机端安装qq邮箱app,触发邮件后,手机也能及时查看了 代码展 ...
- $Django 发送邮件--django封装模块和python内置SMTP模块
一 使用SMTP模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Header m ...
- python之使用smtplib模块发送邮件
# 使用smtplib模块发送邮件 import smtplib from email.mime.text import MIMEText from email.header import Heade ...
- python之smtplib模块 发送邮件
# -*- coding: utf-8 -*- #python 27 #xiaodeng #smtplib模块 发送邮件 import smtplib from email.mime.text imp ...
- Linux 上使用 Gmail SMTP 服务器发送邮件通知
导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm ...
- 微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件
原文:微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件 开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent ...
- Net SMTP QQ 发送邮件
调用DEMO var currUser = new List<string> { "123@qq.com" , "123@qq.com" , &qu ...
- JavaMail SMTP服务器发送邮件程序示例 java通过dns服务器解析ip地址
/** * JavaMail SMTP服务器发送邮件程序示例 * 扮演SMTP服务器角色与邮件客户端软件最大的区别就是: * SMTP服务器需要解析不同接收人邮件地址主机名对应的SMTP服务器主机名 ...
- Ubuntu 使用 heirloom-mail 调用外部邮箱 SMTP 服务器发送邮件
使用本地服务发邮件,经常被过滤掉而且占用资源,发送成功率不高.所以使用外部SMTP服务器发送邮件成为了需求. SMTP认证的目的是为了使用户避免受到垃圾邮件的侵扰,简单地说就是要求必须在提供了账户名和 ...
随机推荐
- postfix 被当作垃圾邮件中转站
磁盘 io 总是满的状态 该服务器只有监控和邮件elk在上面. 发现邮件日志 疯狂的输出 tail -f /var/log/maillog 大致都是来自于 yahoo.com.tw的东西 清空了 /v ...
- Error serializing object:序列化对象时出错
序列化对象时出错 :Error serializing object. Error serializing object. Cause: java.io.NotSerializableExceptio ...
- R语言入门:向量的运算
向量之间的加减乘除运算: > x <- 1 > x [1] 1 2 3 4 5 6 7 8 9 10 > x=x+1 > x [1] 2 3 4 5 6 7 8 9 10 ...
- SharePoint PowerShell SendEmail
前言 最近碰到这样一个需求,用户需要个简单的定时邮件提醒,就是抓取SharePoint某个列表里的值,然后作为邮件地址/邮件主题/邮件内容发送出去. 自己想了想,既然用户要求每天定时发送,那么肯定是任 ...
- redis集群redis-cluster搭建
redis集群搭建--参考微信公众号(诗情画意程序员):https://mp.weixin.qq.com/s/s5eJE801TInHgb8bzCapJQ 这是来自redis官网的一段介绍,大概意思就 ...
- 学习 Vim 命令总结
学习 Vim 命令总结 可以使用 vscode-vim 扩展,但是要注意一些ctrl+字母的快捷键会无效,必须去掉冲突的快捷键 esc 回到普通模式 i 普通模式进入插入模式 : 进入命令模式 :wa ...
- C#设计模式学习笔记:(6)适配器模式
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7640873.html,记录一下学习过程以备后续查用. 一.引言 从今天开始我们开始讲结构型设计模式,结构型设 ...
- 15.python文件(file)方法详解
文件的基本操作 文件读写: 文件的读写满足以下3个步骤: 1).打开文件 2).操作数据(读.写) 3).关闭文件 --> 不要忘记 1).打开文件: python的open() 方法用于打开一 ...
- nodejs爬虫--抓取CSDN某用户全部文章
最近正在学习node.js,就像搞一些东西来玩玩,于是这个简单的爬虫就诞生了. 准备工作 node.js爬虫肯定要先安装node.js环境 创建一个文件夹 在该文件夹打开命令行,执行npm init初 ...
- MySQL数据库的两种连接方式:TCP/IP和Socket
Linux平台环境下主要有两种连接方式,一种是TCP/IP连接方式,另一种就是socket连接. 在Windows平台下,有name pipe和share memory(不考虑)两种. TCP/IP连 ...