如题,Python 发送邮件时图片附件可能会出现发送成功但图片格式变为bin格式的问题

对此,可以使用add_header()函数解决该问题

#6 添加图片
image_data = open('C:\\Users\\10692\\Downloads\\office-automation-main\\Task01-文件处理与邮件自动化\\png\\1.png','rb')   # 二进制读取图片
message_image = MIMEImage(image_data.read())  # 设置读取获取的二进制数据
image_data.close()       # 关闭刚才打开的文件
message_image.add_header('Content-Disposition', 'attachment', filename='filename.png') # filename = '图片名字.图片格式'
msg.attach(message_image)

运行代码如下:

#1 先导入相关的库和方法
import smtplib  #导入库
from smtplib import SMTP_SSL  #加密邮件内容,防止中途被截获
from email.mime.text import  MIMEText   #构造邮件的正文
from email.mime.image import MIMEImage  #构造邮件的图片
from email.mime.multipart import MIMEMultipart   #把邮件的各个部分装在一起,邮件的主体
from email.header import Header   #邮件的文件头,标题,收件人
#2 设置邮箱域名、发件人邮箱、邮箱授权码、收件人邮箱
host_server = 'smtp.163.com' #sina 邮箱smtp服务器                 #smtp 服务器的地址
sender_163 = '...@163.com'      #sender_163为发件人的邮箱,...需自行添加
pwd = '...'                   #pwd为邮箱的授权码
# 设置接受邮箱
receiver = '...'
#3 构建MIMEMultipart对象代表邮件本身,可以往里面添加文本、图片、附件等
msg = MIMEMultipart()    #邮件主体
#4 设置邮件头部内容
mail_title = 'python办公自动化邮件'   # 邮件标题
msg["Subject"] = Header(mail_title,'utf-8')  #装入主体
msg["From"] = sender_163           #寄件人
msg["To"] = Header("测试邮箱",'utf-8') #标题
#5 添加正文文本
mail_content = "您好,这是使用python登录163邮箱发送邮件的测试"   #邮件的正文内容
message_text = MIMEText(mail_content,'plain','utf-8')   #构造文本,参数1:正文内容,参数2:文本格式,参数3:编码方式
msg.attach(message_text)    # 向MIMEMultipart对象中添加文本对象
#6 添加图片
image_data = open('C:\\Users\\10692\\Downloads\\office-automation-main\\Task01-文件处理与邮件自动化\\png\\1.png','rb')   # 二进制读取图片
message_image = MIMEImage(image_data.read())  # 设置读取获取的二进制数据
image_data.close()       # 关闭刚才打开的文件
message_image.add_header('Content-Disposition', 'attachment', filename='filename.png')
msg.attach(message_image)
#8 发送邮件
smtp = SMTP_SSL(host_server)       #SSL登录  创建SMTP对象
smtp.login(sender_163,pwd)         ## 登录邮箱,传递参数1:邮箱地址,参数2:邮箱授权码
smtp.sendmail(sender_163,receiver,msg.as_string()) # 发送邮件,传递参数1:发件人邮箱地址,参数2:收件人邮箱地址,参数3:把邮件内容格式改为str
print("邮件发送成功")
smtp.quit         # 关闭SMTP对象

Python 发送邮件时图片附件变为bin格式的解决方案相关推荐

  1. 第三:Python发送邮件时中文附件下载乱码

    #解决方法 import base64part = MIMEText(open(fileName, 'rb').read(), 'base64', 'UTF-8') part["Conten ...

  2. Python 发送邮件时遇到的问题

    目录 前言 错误重现 解决错误 问题重现 中文附件名"未命名" 解决方法 附件内容中的中文报错 解决方法 尾声 前言 这篇文章主要是解决使用python发送邮件时遇到的一些问题 分 ...

  3. 关于php使用sendmail发送邮件时中文附件名乱码问题解决方法

    问题描述:在php使用sendmail发送邮件时中文附件名出现乱码,如图: 原因分析:这是由于编码引起的错误. 解决办法:首先强制进行编码换: substr($file_name,strrpos($f ...

  4. 直播app源码,Python发文本/图片/附件邮件

    直播app源码,Python发文本/图片/附件邮件实现的相关代码 """ Python发文本/图片/附件邮件 """ import smtp ...

  5. Python发送邮件(带附件)

    import smtplib                           #发送邮件模块 from email.mime.text import MIMEText    #定义邮件内容 fro ...

  6. Python将时长转换为MM:SS格式

    # -*- coding:utf-8 -*- #Auth:Jeson def fmt_duration(seconds): u""" 将视频时长转换成mm:ss的形式 & ...

  7. 第四:Python发送邮件时实现生成测试报告/邮件自动发送

    #coding:utf-8 import unittest from commen import HTMLTestRunner_jpg import os import smtplib from em ...

  8. 把图片后缀变为jpg格式

    import os import cv2def ModifySuffix(rootDir):list_dirs = os.walk(rootDir)print(list_dirs)for root, ...

  9. python 发送邮件不显示附件_python无法通过电子邮件发送附件文件

    我建议使用 MIMEApplication代替附件.您也不需要手动执行所有有效负载编码,因为这已经自动完成.这个例子对我有用: from email.mime.text import MIMEText ...

最新文章

  1. AWS 云技术专栏系列文章
  2. linux中ed编辑器手册,脚本编辑器 - Navicat 15 for Linux 产品手册
  3. Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
  4. php7废弃了MySQL,关于mysql8.0版本和PHP7不兼容的问题
  5. 4月22日(牛马不对嘴)
  6. 图像算法处理视频不稳定?港科大团队提出一种通用算法解决视频处理时域不稳定问题
  7. 如何应对企业的数字灾难
  8. rz安装 xshell_在Linux系统中安装rzsz工具
  9. 实用好用的在线二维码生成器有哪些?
  10. 大学计算机课程日记,大学计算机实习日记.docx
  11. 如何用Python快速计算股票的Beta系数并排序存入Excel表中
  12. Python基础(编码格式、文件、目录)
  13. 3.0_Linux如何连接网络
  14. Java学习笔记-@RunWith(SpringRunner.class)
  15. BMC-IPMB specification
  16. 分享32套精美的免费 PSD 网页界面设计素材
  17. C/C++ 创建多级文件夹(mkdir)
  18. 2020牛客暑假多校第二场补题
  19. oracle的服务配置
  20. 织梦网站地图生成插件下载

热门文章

  1. 6Ps营销理论(转载)
  2. 电脑特别,电脑太卡怎么办,教您电脑很卡如何解决
  3. mysql 2013 error: -handshake: reading initial communication packet‘, system error:60
  4. 笔记本不显示“选择关闭盖子的功能”
  5. 我的个人博客:基于Solo的博客站点
  6. WPF真入门教程01--WPF简介
  7. centos7安装RabbitMQ教程
  8. Terraform 学习总结(3)——Terraform 命令详解
  9. 别给“花式”这两个字吓倒了
  10. 利用银行家算法避免死锁