使用 python 正确格式化电子邮件字符串

properly format string of emails using python

我有一段代码可以从列表中提取电子邮件地址并将它们添加到 MIME 服务的 'To' 字段中。由于电子邮件列表被误解,只有第一个收件人会收到电子邮件。

'list.csv' 文件如下所示

john.doe@domain.com
jean.donna@domain.com

我用来格式化地址的代码是这样的:

with open('list.csv') as allusers:
        concat_out =', '.join(email for (email,) in csv.reader(allusers))
receiver = [concat_out]

MIME 部分:

msg = MIMEMultipart()
msg['Subject'] = 'Notification'
msg['From'] = sender
msg['To'] = '; '.join(receiver)

输出:

['john.doe@domain.com, jean.donna@domain.com'] #notice the missing quotes and a comma
                                               #instead of a semi-colon

如何使列表的格式正确,使其看起来像这样?:

['john.doe@domain.com', 'jean.donna@domain.com'] 

感谢任何帮助。

为什么不直接创建一个列表,然后从列表中生成一个字符串。

with open('list.csv') as allusers:
        concat_out = [email for (email,) in csv.reader(allusers)]
receiver = str(concat_out)

这会给你这样的输出:

"['john.doe@domain.com', 'jean.donna@domain.com'] "

这将在不触及旧代码的情况下解决您的问题

with open('list.csv') as allusers:
        concat_out =', '.join(email for (email,) in csv.reader(allusers))
reciever=concat_out.split(',')
print(reciever)

output: ['john.doe@domain.com', ' jean.donna@domain.com']

email_list = []
with open('list.csv', 'r') as file:
   for line in file.readlines():
       email_list.append(line.strip('\n'))

print(email_list)

输出: ['john.doe@domain.com', 'jean.donna@domain.com']