因業務需求需要寄送大檔案,但是可能接收端的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()

 

 

 

arrow
arrow
    文章標籤
    python
    全站熱搜

    Lung-Yu,Tsai 發表在 痞客邦 留言(0) 人氣()