def generate_mail():
get_chart()
today = timezone.now()
peoples = Peoples.objects.filter(date=today, obj__is_active=True).values('obj__short_title').annotate(total_rab=Sum('rab'), total_itr=Sum('itr')).order_by('-total_rab')
plain_text = get_template('email/email.txt')
html_msg = get_template('email/email.html')
d = Context({'peoples': peoples, 'today': today})
subject, from_email, to = 'Проверка автоматических отчётов', '***@****.ru', ['*******@****.ru']
text_content = plain_text.render(d)
html_content = html_msg.render(d)
img = open("{0}/emailchart/{1}/chart.png".format(MEDIA_ROOT, str(today.date())), 'rb')
b64 = '<img src="data:image/png;base64,{0}" />'.format(base64.b64encode(img.read()))
msg_img = MIMEImage(b64, 'png')
img.close()
msg_img.add_header('Content-ID', '<chart.png>')
msg = EmailMultiAlternatives(subject, text_content, from_email, to)
msg.attach(msg_img)
msg.attach_alternative(html_content, "text/html")
msg.send()
--===============2369970473499959676==
Content-Type: image/png
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-ID: <chart.png>
PGltZyBzcmM9ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxiJ2lWQk9SdzBLR2dvQUFBQU5TVWhFVWdB
QUFsZ0FBQUdRQ0FZQUFBQnlOUjZZQUFBQUNYQklXWE1BQUFzVEFBQUxFd0VBbXB3WUFBQWdBRWxF
UVZSNG5PemRmMVJVNTUwLzhQZkFEREtFSm9Wa1JLVnhxQVNEVFNSQmFRVGFoVlFkZGcxZzlxUlli
ZEJOZ2xEYUxUVVdzOXR1dXU3M3VOSEZiaE9OR21HVVgwbWx5V3Bna2pRSEJjbEdSTXUwVE1BMTBN
cXNhNnFoR1ZKS1pCTTJpRFBNelBjUHpwMHdEdHg3QjRZZkErL1hPWnpEM09mZXovTjVSTWNQOXo3
elBBcW4wK2tFRVJFUkVmbE13SFFuUUVSRVJEVGJzTUFpSWlJaThqRVdXRVJFUkVRK3hnS0xpSWlJ
eU1kWVlCRVJFUkg1R0Fzc0lpSWlJaDlqZ1VWRVJFVGtZeXl3aUlpSWlIeU1CUllSRVJHUmo3SEFJ
aUlpSXZJeDVYUW5RT1R2RWhJU1JOdmZlKys5S2Ny
А вообще я бы Вам рекомендовал использовать какой-нибудь фреймворк (Жить станет проще)