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

时间:2020-01-03 19:07:20

标签: python-3.x mime

我有一段代码可以从列表中提取电子邮件地址,并将其添加到MIME服务的“收件人”字段中。由于电子邮件列表的构造错误,只有第一个收件人会收到电子邮件。

“ 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'] 

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

这将解决您的问题,而无需触及旧代码

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

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

答案 1 :(得分:0)

为什么不只是创建一个列表,然后从列表中创建一个字符串。

const std::vector<double> Keyboard::key_freqs_ = std::vector<double>({
**Crashed here->** 000000013F121362  vmovaps     ymm0,ymmword ptr [__ymm@404059fbe76c8b44403ede353f7ced91403d228f5c28f5c3403b800000000000 (01408B7DE0h)]  
000000013F12136A  movzx       r9d,byte ptr [rsp+20h]  
000000013F121370  lea         r8,[rbp+1F0h]  
000000013F121377  vmovups     ymmword ptr [rsp+30h],ymm0  
000000013F12137D  vmovaps     ymm0,ymmword ptr [__ymm@404499fbe76c8b44404371eb851eb85240425a9fbe76c8b4404152f1a9fbe76d (01408B7E00h)]  
000000013F121385  vmovups     ymmword ptr [rsp+50h],ymm0  
000000013F12138B  vmovaps     ymm0,ymmword ptr [__ymm@4049f4dd2f1a9fbe40487fdf3b645a1d40471fdf3b645a1d4045d3b645a1cac1 (01408B7E20h)]  
000000013F121393  vmovups     ymmword ptr [rsp+70h],ymm0  
000000013F121399  vmovaps     ymm0,ymmword ptr [__ymm@405059fbe76c8b44404ede147ae147ae404d22b020c49ba6404b800000000000 (01408B7E40h)]  
000000013F1213A1  vmovups     ymmword ptr [rbp-70h],ymm0  
000000013F1213A6  vmovaps     ymm0,ymmword ptr [__ymm@40549a0c49ba5e354053720c49ba5e3540525a9fbe76c8b4405152f1a9fbe76d (01408B7E60h)]  
000000013F1213AE  vmovups     ymmword ptr [rbp-50h],ymm0  
000000013F1213B3  vmovaps     ymm0,ymmword ptr [__ymm@4059f47ae147ae1440587fef9db22d0e40571fef9db22d0e4055d3a5e353f7cf (01408B7E80h)]  
000000013F1213BB  vmovups     ymmword ptr [rbp-30h],ymm0  
000000013F1213C0  vmovaps     ymm0,ymmword ptr [__ymm@406059eb851eb852405ede147ae147ae405d228f5c28f5c3405b800000000000 (01408B7EA0h)]  
000000013F1213C8  vmovups     ymmword ptr [rbp-10h],ymm0  
...

这将为您提供如下输出:

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

答案 2 :(得分:0)

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']

相关问题