环境

  • 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 发邮件 带附件相关推荐

  1. python 发邮件-带附件-文本-html

    #!/usr/bin/python # encoding=utf-8 # Filename: send_email.py from email.mime.image import MIMEImage ...

  2. 用python发邮件(带附件)

    摘要 Linux环境下, 后台任务运行结束后, 往往需要将运行结果传递出去. 这就需要在邮件中添加附件, 或者直接在邮件正文中展示. 可以使用python脚本实现此功能. 未解决: 发送附件时, 不管 ...

  3. 1.3windows命令行下使用blat发邮件带附件

    windows命令行bat批处理脚本的应用之blat程序自动发邮件  1.3windows命令行下使用blat发邮件带附件  __游旗丶引莫(孙忠)  发邮件脚本模板  rem  ----邮件内容-- ...

  4. Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd)

    @羲凡--只为了更好的活着 Scala发邮件(带附件,无论是本地文件和hdfs文件或df或rdd) 在有些spark任务执行完后需要通知我们该任务已经执行结束,发邮件到某个邮箱是最直接的方式.那如何用 ...

  5. python发邮件添加附件(十)

    #一.python发邮件添加附件 这是一个神奇的工具,要好好学哦 !!! import smtplib# 1.发送人账号 sendAddress = 'xxx@qq.com' # 2.发送人授权码 p ...

  6. python自动化发邮件(带附件及正文显示图片)

    一.python自动发送邮件-(附件及正文图片) 带附件邮件(1) 前言:一般我们发送邮件,整体的逻辑是这样的,先登录邮箱,发件人,收件人,主题,附件,内容 尝试自动发邮件,并且携带附件,代码如下 f ...

  7. Java Mail---SMTP协议-Java发邮件(带附件)演示过程

    转载请注明出处: http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] JavaMail-API简介: 邮件客户端的主要任务是向邮件服务器发送邮件,以及接 ...

  8. python接口自动化-发邮件带附件

    自动化脚本运行完成以后需要发邮件给相关负责人,那么怎样发送邮件呢,邮件里边又是怎么带附件的呢,今天我们就来了解一下. 1.发送邮件不带附件 首先创建一个py文件,名称为send_main.py,文件内 ...

  9. Java 发邮件-带附件且正文html格式

    入职新公司不久,接到一个给用户发邮件的需求,有两点需要说明的:1)正文需要格式化:2)需要带附件. 大概了解了一下需求,我马上开始思考,现有项目中是否有类似的接口可以支持,如果可以支持,那我就不用再开 ...

最新文章

  1. 怎么使用7zip进行分批压缩_装机必备软件之压缩软件篇——7zip
  2. ubuntu第一次设置root密码
  3. mybatis的增删改操作及需要注意的问题
  4. Security+ 学习笔记19 密码学应用
  5. sql server 2012 复制数据库向导出现TransferDatabasesUsingSMOTransfer()异常
  6. 计算机初始化,怎么初始化电脑 电脑要如何初始化教程
  7. ipv6是什么?ipv6怎么设置?
  8. iftop监控网络流量命令详解
  9. CentOS7 python gi模块安装
  10. cmd返回上一级和根目录
  11. PyTorch入门: Kaggle 泰坦尼克幸存者预测
  12. C/C++开发工程师面试题整理(二)——操作系统进程、线程
  13. A Pulmonary Nodule Detection Model Based on Progressive Resolution and Hierarchical Saliency
  14. js escape、 unescape、 encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别
  15. 一些免费和开源软件介绍
  16. NLP算法-关键词提取之Gensim算法库
  17. vue3 使用video播放视频
  18. 论文阅读 (68):Self-Contrastive Learning: An Efficient Supervised Contrastive Framework with Single...
  19. 2019年动漫游戏行业发展怎么样?南京新华电脑学动漫游戏怎么样?
  20. 关于高压开关柜在线测温方案的应用探讨

热门文章

  1. 大数据入门之分布式计算框架Spark(3) -- Spark Streaming
  2. 打印浏览正常,英文打印正常,但是中文打印乱码的问题
  3. 利用分支限界法解决01背包和货郎担问题
  4. 华为OWS平台和HEC服务浅见
  5. 实时时钟 (RTC)
  6. prompt综述论文阅读:Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural La
  7. AirTag被不法分子滥用为恶意追踪工具?苹果:即将更新解决
  8. 最优化方法(学习笔记)-第七章统计估计
  9. java 格式化 浮点数_如何在javascript中格式化浮点数?
  10. Windows+GCC得到各种格式的文件正文(office文件,PDF,邮件,html,zip等)