2 回答

TA貢獻1847條經(jīng)驗 獲得超7個贊
我不知道你的文件是如何命名的,它們是如何分布在不同文件夾中的,請嘗試將它們的所有名稱連同路徑一起放在 Excel 工作表中的一列中,然后按照你對名稱和郵件所做的方式遍歷它們
attachment = r'{}.csv'.format(filepaths from excel sheet) with open(attachment, 'r') as my_attachment: myfile = my_attachment.read()

TA貢獻1887條經(jīng)驗 獲得超5個贊
下面是完整的代碼。錯誤來了,因為缺少 PATH。win32com lib 需要完整路徑,即使腳本在與附件相同的文件夾中運行也是如此?,F(xiàn)在完美運行。:)
import glob, as
import win32com.client as win32
import pandas as pd
for file in glob.glob("*file.csv"):
? ? print(file)
? ? email_list = pd.read_csv(file)
? ? names = email_list['FolderOwner']
? ? emails = email_list['EmailAddress']
? ? attachments = email_list['AttachmentPath']
? ? PATH = "C:\\Users\\roy\\myfolder\\"
? ? for i in range(len(emails)):
? ? ? ?print("Sending email with " + file)
? ? ? ?name = names[i]
? ? ? ?email = emails[i]
? ? ? ?attachment = attachments[i]
? ? ? ?attachment1 = PATH + attachment?
? ? ? ?with open(attachment1, 'r') as my_attachment:
? ? ? ? ? myfile = my_attachment.read()
? ??
? ? ? ?outlook = win32.Dispatch('outlook.application')
? ? ? ?mail = outlook.CreateItem(0)
? ? ? ?mail.To = email
? ? ? ?mail.Subject = 'Message subject'
? ? ? ?mail.Body = 'Hello ' + name
? ? ? ?mail.Attachments.Add(attachment1)
? ? ? ?mail.Send()
? ? ? ?break
添加回答
舉報