使用 python 为每个用户自动化邮件

问题描述

如何为每封电子邮件生成自定义的 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 (将#修改为@)