Python脚本,用于向具有不同附件的多个收件人发送电子邮件

时间:2018-02-06 18:08:10

标签: python email pdf

我有一个python程序,它发送电子邮件给多个附件的多个收件人(它将文件夹中的所有pdf文件发送并发送电子邮件)。现在我想这样做

我的文件夹包含

file1.pdf file2.pdf file3.pdf file4.pdf file5.pdf file6.pdf .....

我有一个文本文件,其中包含名称,emailid和要附加的文件列表

recipient1 recipient1@gmail.com file1.pdf file2.pdf file3.pdf file4.pdf

recipient2 recipient2@gmail.com file2.pdf file3.pdf

recipient3 recipient3@gmail.com file1.pdf file2.pdf

   def get_contacts(filename):
      names = []
      emails = []
      with open(filename, mode='r', encoding='utf-8') as contacts_file:
        for a_contact in contacts_file:
        names.append(a_contact.split()[0])
        emails.append(a_contact.split()[1])
      return names, emails

我使用上面的代码来读取文本文件并获取收件人的姓名和电子邮件ID,我是否可以使用类似的方式来阅读要附加到每个收件人的文件

1 个答案:

答案 0 :(得分:0)

只要人名或PDF文件名中没有空格,您就可以使用相同的代码获取剩余信息。试试这个:

pdfs = []
...
    for a_contact in contacts_file:
        names.append(a_contact.split()[0])
        emails.append(a_contact.split()[1])
        pdfs.append(a_contact.split()[2:])
return names, emails, pdfs

这将创建PDF文件列表。列表中的索引将相应的索引与emailsnames列表相匹配。请注意使用切片表示法[2:]来抓取一个表达式中的所有PDF。

调用str.split()三次似乎很乱。我们怎么称呼它并保存结果呢?

for a_contact in contacts_file:
    a_contact_list = a_contact.split()
    names.append(a_contact_list[0])
    emails.append(a_contact_list[1])
    pdfs.append(a_contact_list[2:])