问题描述
如何为每封电子邮件生成自定义的 excel?我只想在每封电子邮件中发送一个带有相应信息的 excel 文件。它适用于一封邮件,但我正在尝试为列表中的每封邮件执行此操作(代码的第二部分)
import smtplib
from email.message import EmailMessage
SENDER_EMAIL = "****@gmail.com"
APP_PASSWORD = "***"
def send_mail_with_excel(recipient_email,subject,content,excel_file):
df=pd.read_excel('prueba_mail.xlsx')
df=df.set_index('DNI')
df=df.loc[dni]
df.to_excel(f'{dni}.xlsx')
msg = EmailMessage()
msg['Subject'] = subject
msg['From'] = SENDER_EMAIL
msg['To'] = recipient_email
msg.set_content(content)
with open(excel_file,'rb') as f: #leemos fichero
file_data = f.read()
msg.add_attachment(file_data,maintype="application",subtype="xlsx",filename=excel_file)
with smtplib.SMTP_SSL('smtp.gmail.com',465) as smtp:
smtp.login(SENDER_EMAIL,APP_PASSWORD)
smtp.send_message(msg)
#------------------------------
#generating customized excels per mail
df=pd.read_excel('prueba_mail.xlsx')
df=df.set_index('EMAIL ID')
mail_list=df.index.to_list()
for email in mail_list:
df2=pd.read_excel('prueba_mail.xlsx')
df2=df2.set_index('EMAIL ID')
df2=df2.loc[email].to_excel(f'{email}.xlsx')
with open(f'{email}.xlsx','rb') as f:
**send_mail_with_excel(email,'Email','Contenido',f)**
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)