如题,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. Benefits and limitations of genome-wide association studies GWAS--益处和局限性
  2. android技术下载
  3. dubbo服务接口如何mock_2019年Dubbo你掌握的如何?快看看这30道高频面试题!
  4. jQuery:仿MSN网站的tab效果
  5. linux+oracle+自动增量备份脚本,linux自动运行rman增量备份脚本
  6. 一步一步写算法(之 算法总结)【转】
  7. linux备份还原系统程序
  8. 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
  9. 【CVPR2019】完整论文列表二
  10. ulimit限制 新系统_遇到一个很奇怪的问题,ulimit设置问题
  11. 网络安全问题及防护措施有哪些
  12. PuTTYgen使用教程
  13. 主流编程语言的特点分析
  14. 利用VBA代码合并多个Excel表格
  15. Android自定义广播和监听
  16. 【行业介绍】工业自动化行业
  17. UPDATE statement on table xxx‘ expected to update 1 row(s); 0 were matched
  18. 为docker容器设置独立ip
  19. Excel 常用数字函数
  20. myBase7安全破解

热门文章

  1. eclipse中如何开启关闭鼠标悬浮和修改鼠标悬浮响应时间
  2. Petrel 2014 图形工作站应用方案
  3. 洛谷——P1518 两只塔姆沃斯牛 The Tamworth Two
  4. WDK8.1下载安装
  5. Oracle 10g rac + ASM数据迁移(替换ASM中的磁盘,用新存储替换旧存储)
  6. 2022年充电宝哪个好,2022年值得入手的充电宝品牌
  7. 汉字英雄游戏项目(C#为例)思路建议
  8. 梦幻西游手游烹饪50到60_50个很棒的厨房,食物和烹饪图标集
  9. BC26 计算三角形的周长和面积
  10. 安卓手机如何投屏到电视上_安卓手机的屏幕怎么投屏在电视大屏幕上