Я много искал вокруг SO и Google, но не получил свой ответ, поэтому в конечном итоге решил спросить здесь.
У меня есть файл csv , который я преобразовываю в html фрейм, который работает нормально, и я могу отправить его как html фрейм через Outlook в виде электронного письма.
Искал, можем ли мы напрямую отправить df.to_html
каквложение в электронное письмо?
Ниже приведен код:
Это прекрасно работает при отправке электронного письма с html-рамкой через Outlook.
import pandas as pd
import numpy as np
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
df = pd.read_csv('graph.csv', names=['Volume_Path', 'Last Acced', 'Year', 'Month', 'Days', '1-24 hrs', '1 hour', '15 mins', 'future'])
df['Volume_Path'] = df['Volume_Path'].str.replace('\t', '')
df = df.replace(np.nan, '')
# Create message container - the correct MIME type is multipart/alternative.
##############################################################################
msg = "<u><b> Checklist</b></u><br />"
msg = msg + "<br />"
msg += df.to_html(escape=False)
def mail(msg,recipients,key):
try:
s = smtplib.SMTP('mailserver.xyz.com')
msg1 = MIMEText(msg, 'html')
sender = 'tina@xyz.com'
msg1['From'] = sender
msg1['To'] = ", ".join(recipients)
msg1['Cc'] = 'mauj@xyz.com'
msg1['Subject'] = "Mauj Test"
s.sendmail(sender, recipients, msg1.as_string())
print(f"Mail Sent to {sender}")
except Exception as error:
print(f"Mail Failed - {error}")
recipients = ['joe@xyz.com']
key=""
mail(msg,recipients,key)