python 发邮件 带附件
环境
- python==3.7
代码
from io import BytesIO
import smtplib
import email
from email.mime.application import MIMEApplication
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Headerclass Email:def __init__(self):self.sender = EMAIL["SENDER_ACCOUNT"]self.password = EMAIL["PASSWORD"]self.port = EMAIL["PORT"]self.host = EMAIL["HOST"]self.receivers = EMAIL["RECEIVER"]self.charset = "utf-8"@staticmethoddef to_bytes_io(df: pd.DataFrame):bytes_io = BytesIO()df.to_excel(bytes_io, index=False)bytes_io.seek(0, 0)return bytes_io.read()def _create_msg(self, subject, content, attachments):# 创建一个带附件的实例message = MIMEMultipart()# sender_obj = email.utils.formataddr(("syh", self.sender))message['From'] = self.sendermessage['To'] = ",".join(self.receivers)message['Subject'] = Header(subject, self.charset)# 邮件正文内容message.attach(MIMEText(content, 'plain', self.charset))for idx, x in enumerate(attachments):att = MIMEApplication(x)att["Content-Type"] = 'application/octet-stream'att["Content-Disposition"] = f'attachment; filename="{idx}.xlsx"'message.attach(att)return messagedef send(self, subject, content, attachment_excels):msg = self._create_msg(subject, content, attachment_excels)smtp = smtplib.SMTP(self.host, port=self.port)smtp.login(self.sender, self.password)print("登录成功")smtp.sendmail(self.sender, self.receivers, msg.as_string())print("11")smtp.quit()
备注
本次使用的是qq邮箱进行测试,使用前需打开邮箱的SMTP服务,密码使用授权码,非密码。发送的附件可以是文件,也可以是bytes_io,如代码中的to_bytes_io。
python 发邮件 带附件相关推荐
- python 发邮件-带附件-文本-html
#!/usr/bin/python # encoding=utf-8 # Filename: send_email.py from email.mime.image import MIMEImage ...
- 用python发邮件(带附件)
摘要 Linux环境下, 后台任务运行结束后, 往往需要将运行结果传递出去. 这就需要在邮件中添加附件, 或者直接在邮件正文中展示. 可以使用python脚本实现此功能. 未解决: 发送附件时, 不管 ...
- 1.3windows命令行下使用blat发邮件带附件
windows命令行bat批处理脚本的应用之blat程序自动发邮件 1.3windows命令行下使用blat发邮件带附件 __游旗丶引莫(孙忠) 发邮件脚本模板 rem ----邮件内容-- ...
- Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd)
@羲凡--只为了更好的活着 Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd) 在有些spark任务执行完后需要通知我们该任务已经执行结束,发邮件到某个邮箱是最直接的方式.那如何用 ...
- python发邮件添加附件(十)
#一.python发邮件添加附件 这是一个神奇的工具,要好好学哦 !!! import smtplib# 1.发送人账号 sendAddress = 'xxx@qq.com' # 2.发送人授权码 p ...
- python自动化发邮件(带附件及正文显示图片)
一.python自动发送邮件-(附件及正文图片) 带附件邮件(1) 前言:一般我们发送邮件,整体的逻辑是这样的,先登录邮箱,发件人,收件人,主题,附件,内容 尝试自动发邮件,并且携带附件,代码如下 f ...
- Java Mail---SMTP协议-Java发邮件(带附件)演示过程
转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] JavaMail-API简介: 邮件客户端的主要任务是向邮件服务器发送邮件,以及接 ...
- python接口自动化-发邮件带附件
自动化脚本运行完成以后需要发邮件给相关负责人,那么怎样发送邮件呢,邮件里边又是怎么带附件的呢,今天我们就来了解一下. 1.发送邮件不带附件 首先创建一个py文件,名称为send_main.py,文件内 ...
- Java 发邮件-带附件且正文html格式
入职新公司不久,接到一个给用户发邮件的需求,有两点需要说明的:1)正文需要格式化:2)需要带附件. 大概了解了一下需求,我马上开始思考,现有项目中是否有类似的接口可以支持,如果可以支持,那我就不用再开 ...
最新文章
- 怎么使用7zip进行分批压缩_装机必备软件之压缩软件篇——7zip
- ubuntu第一次设置root密码
- mybatis的增删改操作及需要注意的问题
- Security+ 学习笔记19 密码学应用
- sql server 2012 复制数据库向导出现TransferDatabasesUsingSMOTransfer()异常
- 计算机初始化,怎么初始化电脑 电脑要如何初始化教程
- ipv6是什么?ipv6怎么设置?
- iftop监控网络流量命令详解
- CentOS7 python gi模块安装
- cmd返回上一级和根目录
- PyTorch入门: Kaggle 泰坦尼克幸存者预测
- C/C++开发工程师面试题整理(二)——操作系统进程、线程
- A Pulmonary Nodule Detection Model Based on Progressive Resolution and Hierarchical Saliency
- js escape、 unescape、 encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
- 一些免费和开源软件介绍
- NLP算法-关键词提取之Gensim算法库
- vue3 使用video播放视频
- 论文阅读 (68):Self-Contrastive Learning: An Efficient Supervised Contrastive Framework with Single...
- 2019年动漫游戏行业发展怎么样?南京新华电脑学动漫游戏怎么样?
- 关于高压开关柜在线测温方案的应用探讨
热门文章
- 大数据入门之分布式计算框架Spark(3) -- Spark Streaming
- 打印浏览正常,英文打印正常,但是中文打印乱码的问题
- 利用分支限界法解决01背包和货郎担问题
- 华为OWS平台和HEC服务浅见
- 实时时钟 (RTC)
- prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural La
- AirTag被不法分子滥用为恶意追踪工具?苹果:即将更新解决
- 最优化方法(学习笔记)-第七章统计估计
- java 格式化 浮点数_如何在javascript中格式化浮点数?
- Windows+GCC得到各种格式的文件正文(office文件,PDF,邮件,html,zip等)