Я пытаюсь отправить гистограмму matplotlib как вложение электронной почты с помощью mailgun.
Гистограмма создана нормально, но у меня не получается, когда я пытаюсь сохранить ее и отправить по электронной почте как объект BytesIO.
Я пробовал следующий код:
def send_simple_message(buf):
mgurl = 'https://api.mailgun.net/v3/{}/messages'.format('sandboxf04fcce3c4dc46c987c92f3a967e7f9c.mailgun.org')
auth = ('api', '3701ba6d2b1ad202e76a4322a80c7600-87cdd773-683e02b1')
files=[("attachment", ("test.jpg", buf))]
data = {
'from': 'Mailgun User <mailgun@{}>'.format('sandboxf04fcce3c4dc46c345c92f3a123e7f7c.mailgun.org'),
'to': 'user@gmail.com',
'subject': 'Simple Mailgun Example',
'text': 'hello'
}
response = requests.post(mgurl, auth=auth, data=data, files=files)
response.raise_for_status()
buf = BytesIO()
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.bar(x,y, width, color='lightblue', ec='grey')
fig.savefig(buf, format='png')
buf.seek(0)
send_simple_message(buf)
Однако это приводит к следующей ошибке:
AttributeError: 'NoneType' object has no attribute 'read'
Большое спасибо заранее