Getting a red cross while trying to embed a png file created through pyplot in email The code I am using is here below. What can I add in the current html to get rid of this
I need to add the image in the email body
fig, ax = plt.subplots(figsize=(10,6))
ax.plot(
query['dt'],
query['cnt'],
marker = 'o',
markerfacecolor = 'DeepSkyBlue',
linewidth = 3,
color = 'MediumSlateBlue' )
ax.set(xlabel = 'D A T E', ylabel = 'C O U N T')
plt.setp(ax.get_xticklabels(), rotation = 90)
plt.savefig("C:/Users/quratulain.zulfiqar/Desktop/f.png", bbox_inches = "tight")
body = """<html>
<head>
<style>
#customers {
font-family: "proxima-nova", sans-serif;
border-collapse: collapse;
width: 100%;
}
#customers td, #customers th {
border: 1px solid #CB3D57;
padding: 8px;
}
#customers tr:nth-child(even){background-color: #CB3D57;}
#customers tr:hover {background-color: #CB3D57;}
#customers th {
padding-top: 12px;
padding-bottom: 10px;
text-align: center;
background-color: #CB3D57;
color: red;
}
</style>
</head>
<body>
<span style="text-align:center;"> <u><h3>"""+"AGENT MAPPING COUNT"+"""</h3></u> </span>
<div><img src= "cid:C:/Users/quratulain.zulfiqar/Desktop/f.png" ></img></div>
<p><p>
<div style='vertical-align:middle; display:att;'>
<p><p>
<p><p>
<p>Regards,<p>
</body>
</html>
"""
# In[288]:
msg1 = MIMEMultipart('alternative')
msg1['Subject'] = email_subject
msg1["From"]=from_label
msg1["To"]=to_label
msg1["CC"]=CC
file_list=[]
for fl in file_list:
with open(fl, "rb") as fil:
part = MIMEApplication(fil.read(),Name=basename(fl))
part['Content-Disposition'] = 'attachment; filename="%s"' % basename(fl)
msg1.attach(part)
part1 = MIMEText(body, 'html')
msg1.attach(part1)
with open('C:/Users/quratulain.zulfiqar/Desktop/f.png', 'rb') as f:
# set attachment mime and file name, the image type is png
mime = MIMEBase('image','png', filename='f.png')
# add required header data:
mime.add_header('Content-Disposition', 'attachment', filename='f.png')
mime.add_header('X-Attachment-Id', '0')
mime.add_header('Content-ID', '<0>')
mime.set_payload(f.read())
encode_base64(mime)
msg1.attach(mime)
server = smtplib.SMTP(email_server, email_port)
server.sendmail(from_email,to_emails, msg1.as_string())
server.quit()
I know there are other ways but since we are already this format which we were following so I need to stick to that and update it here.