因業務需求需要寄送大檔案,但是可能接收端的mail server 不允許夾帶大檔案之附件,故需要將檔案進行拆分壓縮,此時需要一個一個寄信就變成一件非常麻煩的事情,因此有了以下的程式碼!!
首先本案例是使用outlook的mail 服務,所以程式會透過 outlook 寄信。
1. 首先需要套過 pip 安裝相依套件
pip install pywin32
2. 程式碼如下:
import win32com.client from os import listdir,getcwd from os.path import isfile, join import sys def getAttachments(cwd): # cwd = join(getcwd(),"files") attachFiles = [join(cwd, f) for f in listdir(cwd) if isfile(join(cwd, f))] return attachFiles def sendMail(cwd): idx = 1 for attachment in getAttachments(cwd): print("attachments file path = ", attachment) outlook = win32com.client.Dispatch('outlook.application') mail = outlook.CreateItem(0) mail.To = 'targetEmailAddress.com.tw' mail.Subject = 'Realse ' + str(idx) mail.HTMLBody = '<h3>This is HTML Body</h3>' mail.Body = "This is the normal body" # mail.Attachments.Add('c://sample.xlsx') mail.Attachments.Add(attachment) # mail.CC = 'cc_address@gmail.com' mail.Send() idx += 1 def main(): if len(sys.argv) <= 1: cwd = join(getcwd(),"files") sendMail(cwd=cwd) else: sendMail(cwd = sys.argv[1]) main()
文章標籤
全站熱搜