如何在Python中处理从数据库获取的单个和多个电子邮件ID

2024-09-27 07:27:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个场景,在这个场景中,我从数据库中提取电子邮件,并向相应的用户发送邮件。 从数据库获取的值可以是单个电子邮件Id或多个电子邮件Id

我写了下面的代码,当它遇到多个以逗号分隔的电子邮件id时,它会给我一个错误

for index, row in df1.iterrows():
    myVar1 = row["abc"]
    #myVar2 = row["Email"]
    if row["Email"].count('@') > 1:
        myVar2 = ','.join(row["Email"])
    else:
        myVar2 = row["Email"]
    msg = email.message.Message()
    msg['From'] = 'do.not.reply@xyz.com'
    msg['To'] = myVar2
    msg['Subject'] = "abc to be read - {0}".format(myVar1)
    msg.add_header('Content-Type', 'text')
    msg.set_payload("Hello Users,\n\n ABC - {0} has reached its limit.".format(myVar1))
    smtp_obj = smtplib.SMTP("outlook.xyz.com")
    smtp_obj.sendmail(msg['From'],msg['To'], msg.as_string())
    smtp_obj.quit()

如果它是一个单一的电子邮件id,那么邮件将正确触发,但是如果传递了多个电子邮件,那么每个字母表都用逗号分隔

输入'abc@xyz.com,asd@xyz.com' 错误消息:a、b、c、@、x、y、z、、c、o、m、、a、s、d、@、x、y、z、、c、o、m

请帮我解决这个问题

谢谢


Tags: comid数据库obj电子邮件email场景邮件

热门问题