第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

win32com.client 發(fā)送不同的附件而不是固定的文件路徑

win32com.client 發(fā)送不同的附件而不是固定的文件路徑

慕哥9229398 2023-06-06 16:10:11
我可以使用以下單個附件腳本向 outlook 上的不同收件人發(fā)送電子郵件,但是如果我嘗試使用 for 循環(huán)向每個用戶發(fā)送不同的附件,則會失敗。目前該腳本正在使用attachment = r'C:\Users\roy\Royfile.csv'. 但我想要attachment = file,以便附件在每個 for 循環(huán)中針對不同的用戶進行更改。這部分不起作用。不同用戶的不同文件,示例Royfile.csv如下。但是還有 50 個這樣的文件。Folder        FolderOwner    EmailAddress      AttachmentPathC:\folder1\   Roy            Roy@gmail.com     Royfile.csvD:\folder2\   Roy            Roy@gmail.com     Royfile.csv同一文件夾中的第二個文件Jackfile.csv:Folder        FolderOwner    EmailAddress      AttachmentPath  C:\folder3\   Jack            Jack@gmail.com   Jackfile.csvD:\folder4\   Jack            Jack@gmail.com   Jackfile.csv 例如第三個文件Mandyfile.csv。同樣的方式,同一文件夾中的 50 個用戶總共有 50 個文件。Folder        FolderOwner    EmailAddress        AttachmentPathC:\folder5\   Mandy            Mandy@gmail.com   Mandyfile.csvD:\folder6\   Mandy            Mandy@gmail.com   Mandyfile.csvPython腳本import glob, asimport win32com.client as win32import pandas as pdfor 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']    for i in range(len(emails)):       print(file)       name = names[i]       email = emails[i]       attachment = r'{}.csv'.format(attachments)       with open(attachment, '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(attachment)       mail.Send()       break如果刪除附件部分,腳本的當前輸出:Royfile.csvRoyfile.csvJackfile.csvJackfile.csvMandyfile.csvMandyfile.csv......現(xiàn)在正在為附件 = ??? 所需要的東西而苦苦掙扎。這樣每個文件都會發(fā)送給 50 個用戶。
查看完整描述

2 回答

?
aluckdog

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()


查看完整回答
反對 回復(fù) 2023-06-06
?
慕工程0101907

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


查看完整回答
反對 回復(fù) 2023-06-06
  • 2 回答
  • 0 關(guān)注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號