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 ...
最新文章
- AWS 云技术专栏系列文章
- linux中ed编辑器手册,脚本编辑器 - Navicat 15 for Linux 产品手册
- Flink从入门到精通100篇(八)-美团点评是如何在 Flink平台建立 实时数仓的?
- php7废弃了MySQL,关于mysql8.0版本和PHP7不兼容的问题
- 4月22日(牛马不对嘴)
- 图像算法处理视频不稳定?港科大团队提出一种通用算法解决视频处理时域不稳定问题
- 如何应对企业的数字灾难
- rz安装 xshell_在Linux系统中安装rzsz工具
- 实用好用的在线二维码生成器有哪些?
- 大学计算机课程日记,大学计算机实习日记.docx
- 如何用Python快速计算股票的Beta系数并排序存入Excel表中
- Python基础(编码格式、文件、目录)
- 3.0_Linux如何连接网络
- Java学习笔记-@RunWith(SpringRunner.class)
- BMC-IPMB specification
- 分享32套精美的免费 PSD 网页界面设计素材
- C/C++ 创建多级文件夹(mkdir)
- 2020牛客暑假多校第二场补题
- oracle的服务配置
- 织梦网站地图生成插件下载
热门文章
- 6Ps营销理论(转载)
- 电脑特别,电脑太卡怎么办,教您电脑很卡如何解决
- mysql 2013 error: -handshake: reading initial communication packet‘, system error:60
- 笔记本不显示“选择关闭盖子的功能”
- 我的个人博客:基于Solo的博客站点
- WPF真入门教程01--WPF简介
- centos7安装RabbitMQ教程
- Terraform 学习总结(3)——Terraform 命令详解
- 别给“花式”这两个字吓倒了
- 利用银行家算法避免死锁