Python 发送邮件时图片附件变为bin格式的解决方案
如题,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格式的解决方案相关推荐
- 第三:Python发送邮件时中文附件下载乱码
#解决方法 import base64part = MIMEText(open(fileName, 'rb').read(), 'base64', 'UTF-8') part["Conten ...
- Python 发送邮件时遇到的问题
目录 前言 错误重现 解决错误 问题重现 中文附件名"未命名" 解决方法 附件内容中的中文报错 解决方法 尾声 前言 这篇文章主要是解决使用python发送邮件时遇到的一些问题 分 ...
- 关于php使用sendmail发送邮件时中文附件名乱码问题解决方法
问题描述:在php使用sendmail发送邮件时中文附件名出现乱码,如图: 原因分析:这是由于编码引起的错误. 解决办法:首先强制进行编码换: substr($file_name,strrpos($f ...
- 直播app源码,Python发文本/图片/附件邮件
直播app源码,Python发文本/图片/附件邮件实现的相关代码 """ Python发文本/图片/附件邮件 """ import smtp ...
- Python发送邮件(带附件)
import smtplib #发送邮件模块 from email.mime.text import MIMEText #定义邮件内容 fro ...
- Python将时长转换为MM:SS格式
# -*- coding:utf-8 -*- #Auth:Jeson def fmt_duration(seconds): u""" 将视频时长转换成mm:ss的形式 & ...
- 第四:Python发送邮件时实现生成测试报告/邮件自动发送
#coding:utf-8 import unittest from commen import HTMLTestRunner_jpg import os import smtplib from em ...
- 把图片后缀变为jpg格式
import os import cv2def ModifySuffix(rootDir):list_dirs = os.walk(rootDir)print(list_dirs)for root, ...
- python 发送邮件不显示附件_python无法通过电子邮件发送附件文件
我建议使用 MIMEApplication代替附件.您也不需要手动执行所有有效负载编码,因为这已经自动完成.这个例子对我有用: from email.mime.text import MIMEText ...
最新文章
- Benefits and limitations of genome-wide association studies GWAS--益处和局限性
- android技术下载
- dubbo服务接口如何mock_2019年Dubbo你掌握的如何?快看看这30道高频面试题!
- jQuery:仿MSN网站的tab效果
- linux+oracle+自动增量备份脚本,linux自动运行rman增量备份脚本
- 一步一步写算法(之 算法总结)【转】
- linux备份还原系统程序
- 【pytorch】torch.range() 和 torch.arange() ==>以step为间隔输出从start到end的张量列表
- 【CVPR2019】完整论文列表二
- ulimit限制 新系统_遇到一个很奇怪的问题,ulimit设置问题
- 网络安全问题及防护措施有哪些
- PuTTYgen使用教程
- 主流编程语言的特点分析
- 利用VBA代码合并多个Excel表格
- Android自定义广播和监听
- 【行业介绍】工业自动化行业
- UPDATE statement on table xxx‘ expected to update 1 row(s); 0 were matched
- 为docker容器设置独立ip
- Excel 常用数字函数
- myBase7安全破解
热门文章
- eclipse中如何开启关闭鼠标悬浮和修改鼠标悬浮响应时间
- Petrel 2014 图形工作站应用方案
- 洛谷——P1518 两只塔姆沃斯牛 The Tamworth Two
- WDK8.1下载安装
- Oracle 10g rac + ASM数据迁移(替换ASM中的磁盘,用新存储替换旧存储)
- 2022年充电宝哪个好,2022年值得入手的充电宝品牌
- 汉字英雄游戏项目(C#为例)思路建议
- 梦幻西游手游烹饪50到60_50个很棒的厨房,食物和烹饪图标集
- BC26 计算三角形的周长和面积
- 安卓手机如何投屏到电视上_安卓手机的屏幕怎么投屏在电视大屏幕上