我正在尝试将图像作为附件发送电子邮件,而不保存图像。我想直接寄这封信

2024-04-20 11:30:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我不能使用本地文件路径,因为它被拒绝,我的学校it人员不允许我使用根文件路径访问我的文件,它只是说拒绝权限

设置附件

file_location = "H:/images"
filename1 = os.path.basename(file_location)
attachment = open(file_location, "rb")
part = MIMEBase('image', 'png', filename="screenshot.png")
part.set_payload(attachment.read())

我想要的不是使用文件位置,而是使用pyscreenshot图像抓取来抓取图像,然后将该图像作为附件发送


Tags: 文件图像路径权限附件attachment人员png
1条回答
网友
1楼 · 发布于 2024-04-20 11:30:27

MIMEBase不需要实际的本地文件路径 set_payload()将接受作为有效负载传入的任何兼容参数 pyscreenshot本身依赖于文件保存 但我们可以尝试使用ByteIO对象

直截了当

from PIL import ImageGrab
import io

img = ImageGrab.grab()
img_bytes = io.BytesIO()
img.save(img_bytes, format='PNG')

part = MIMEBase('image', 'png', filename="screenshot.png")
part.set_payload(img_bytes.getvalue())

由于未知的原因,我的python构建拒绝安装PIL,因此我无法调试ImageGrab部分

如果我的代码中断,请发表评论

相关问题 更多 >