Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在数据帧上循环时,我无法向多个收件人发送电子邮件_Python_Dataframe_Email - Fatal编程技术网

Python 在数据帧上循环时,我无法向多个收件人发送电子邮件

Python 在数据帧上循环时,我无法向多个收件人发送电子邮件,python,dataframe,email,Python,Dataframe,Email,我试图在发送电子邮件时循环一个数据帧,但收到一个错误。下面是我的代码。其想法是将自定义电子邮件发送到包含各自名字和分数的电子邮件列表 email_list = [abc@gmail.com, def@gmail.com, ghi@gmail.com] email['from'] = 'xyz' email['subject'] = 'Corporate Rating Quiz' for recipient in email_list: email['To'] = recipient

我试图在发送电子邮件时循环一个数据帧,但收到一个错误。下面是我的代码。其想法是将自定义电子邮件发送到包含各自名字和分数的电子邮件列表

email_list = [abc@gmail.com, def@gmail.com, ghi@gmail.com]

email['from'] = 'xyz'
email['subject'] = 'Corporate Rating Quiz'

for recipient in email_list:
    email['To'] = recipient
    for index,row in df.iterrows():
        email.set_content(html.substitute({'name' : row['First Name'], 'score' : row['Score']}))
        with smtplib.SMTP(host='smtp.gmail.com',port=587) as smtp:
            smtp.ehlo()
            smtp.starttls()
            smtp.login('*@gmail.com','*')
            smtp.send_message(email)
            del email['To']
            print('all done!')
收到的错误为:smtplib.SMTPRecipientsRefused:{},电子邮件最终只发送给第一个收件人


我到处找了很多,找不到解决这个问题的办法

我没有你的数据帧,这就是为什么你可以试试这个:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

email_list = ["abc@gmail.com","def@gmail.com","ghi@gmail.com"]

email = MIMEMultipart()
email['from'] = 'xyz@gmail.com'
email['subject'] = 'Corporate Rating Quiz'

for recipient in email_list:
    email['To'] = recipient
    for index,row in df.iterrows():
        email.set_content(html.substitute({'name' : row['First Name'], 'score' : row['Score']}))
        with smtplib.SMTP(host='smtp.gmail.com',port=587) as smtp:
            smtp.ehlo()
            smtp.starttls()
            smtp.login('*@gmail.com','*')
            smtp.send_message(email)
            email['To']= ""
            print('all done!')