我在matplotlib中创建了一个图表,我想自动发送。
我已经将图表转换为png,然后将其保存为变量,如下所示:
chart = io.BytesIO()
plt.savefig(chart, format='png')
chart.seek(0)
im = Image.open(chart)
def get_plot():
return im
它不需要以png格式来完成任务,我只是认为将其保存为该格式是存储它的最佳方式。
然后,我设置了自动生成的电子邮件(今天是一个变量,它保存了当天的日期):
def Emailer(text, subject, recipient):
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = recipient
mail.Subject = subject
mail.HtmlBody = text
mail.Display(True)
MailSubject= "Auto test mail at "+today
MailInput=im
MailAdress='recipient@guyIwanttosendemailsto.com'
Emailer(MailInput, MailSubject, MailAdress )
不幸的是,当我运行代码时,我得到一个错误消息说:
TypeError: Objects of type 'PngImageFile' can not be converted to a COM VARIANT (but obtaining the buffer() of this object could)
如果我没有'im'变量在'MailInput'的电子邮件工作完全按照预期。我想知道你们中是否有人对如何完成这项任务有一些建议?
1条答案
按热度按时间7vux5j2d1#
所以我能够通过将图表保存到桌面来解决这个问题:
然后按如下方式更改'MailInput'行(user是另一个动态变量):