Contents

如何使用 Python 自動化 Outlook 電子郵件

Python 在自動化方面提供了很多功能,只需幾行程式碼就可以實現很多功能。該語言在從數據分析到系統管理的許多領域都得到了普及。

Outlook 是一種廣泛使用的電子郵件應用程序,利用 Python 的 Outlook 自動化功能,使用者可以輕鬆有效地傳送訊息。

為了獲取有關使用 Python 中的 Microsoft Outlook 應用程式透過電子郵件發送自動訊息的過程的知識,您必須繼續閱讀。

滿足一些先決條件

要啟動該過程,您需要取得並設定必要的軟體元件。這可能涉及下載和安裝當前任務所需的特定應用程式或模組。安裝這些之後,您可以根據您的需求繼續配置它們,並根據需要將它們整合到您的工作流程中。

Microsoft Outlook 是一種流行的電子郵件用戶端,需要在您的電腦上安裝才能正常運作。它可以與各種電子郵件提供者結合使用,包括 Gmail 帳戶等。

利用「win32com.client」模組可以透過 Python 與各種 Microsoft 應用程式無縫互動。在這些應用程式中,Microsoft Outlook 是一個值得注意的例子,它需要整合該程式庫來建立與 Outlook Exchange Server 的連線。

安裝 win32com.client

利用「win32com.client」構成了該腳本中的一個關鍵組件,透過利用一個全面的庫來促進Microsoft Outlook 和Python 之間的無縫互通性,該庫能夠在這兩個平台之間建立可靠的通信。

檢查 win32com.client 版本

在安裝之前,可以驗證 win32com 模組是否已預先安裝在其係統上。在某些情況下,特定的整合開發環境 (IDE) 迭代包含此套件作為標準元件。可以使用以下命令確認 win32com 模組的可用性。

 python -m pip show pywin32 

要解決「‘pip’未被識別為內部或外部命令」錯誤,可能需要在作業系統上安裝 pip(如果尚不可用)。這可以透過從官方 Python 網站下載並執行適用於 Windows、macOS 或 Linux 的適當安裝程式或使用 Homebrew(適用於 macOS)或 APT/APT-GET(適用於 Ubuntu)等套件管理器來完成。

執行前面提到的命令後,如果您看到版本號,則無需進行額外安裝,因為它已經安裝在您的系統上。

/bc/images/verify-installation-setup-in-terminal-window-1.jpg

如果您遇到錯誤訊息,表示缺少所需的元件,您可能需要在裝置上安裝「win32com」庫才能解決該問題。

 'pywin32' is not recognized as an internal or external command, operable program, or batch file. 

安裝 win32com 庫

請開啟終端機或命令提示字元窗口,導覽至所需的目錄,然後輸入適當的 pip 命令來安裝所需的庫。

 python -m pip install pywin32 

/bc/images/install-pywin32com-on-windows-3.jpg

請依照螢幕上的指示完成安裝程序。若要確認 win32com 已成功安裝,您可以在安裝完成後使用 show 指令。

 python -m pip show pywin32 

使用 Outlook 從 Python 傳送電子郵件

Outlook是一款古老而受歡迎的電子郵件用戶端,在頂級電子郵件應用程式中佔有重要地位,受歡迎程度僅次於Gmail和Yahoo。值得注意的是,Python 提供與 Outlook 的無縫集成,使用戶幾乎可以在任何地方輕鬆管理他們的電子郵件通訊。

滿足上述先決條件後,現在是時候開始使用 Python 編寫透過 Outlook 自動傳送電子郵件的程式碼了。為了啟動這個過程,必須透過 import 語句合併 win32com.client 函式庫。

 import win32com.client 

使用 Python,您現在可以與 Microsoft 的電子郵件平台 Outlook 建立連線。

 ol = win32com.client.Dispatch('Outlook.Application') 

在哪裡:

⭐ol儲存連接參考。

Win32COM 用戶端程式庫可作為促進 Python 和 Microsoft Outlook 之間通訊的接口,使用戶能夠同時利用兩個平台的功能。

調度函數用於透過其實現來建立連接。

Outlook.Application 物件表示用於與 Microsoft Outlook 建立連接的應用程序,並充當在 Extensis Mailer 中處理電子郵件的基本構建塊。

/bc/images/import-win32-library.jpg

為了讓Python有效更新電子郵件訊息的指定區域,建立所述訊息的維度至關重要。這將使程式能夠準確識別應修改資訊的位置。

 # size of the new email
olmailitem = 0x0 

在哪裡:

引入了一個新變量,指定為“olmailitem”,它將用於儲存尺寸資訊。

Python程式內部儲存空間中新建立的電子信件的維度是由符號「0x0」表示的抽象。

在Python中定義電子郵件的尺寸參數後,其函數將自動產生新的電子郵件項目。

 newmail = ol.CreateItem(olmailitem) 

在哪裡:

引入了一個名為“newmail”的新變量,它用作最新電子郵件參考的儲存空間。

提供的程式碼代表 Python 和 Microsoft Outlook 之間預先存在的整合的引用,允許兩個平台之間進行通訊。

正在進行中的產生電子郵件訊息的指令稱為“CreateItem(olmailitem)”,其透過命令來執行。

每個電子訊息都需要包含明確的主題行,並且可以透過程式設計指定它,以便 Python 應用程式在將信件發送給預期收件人之前自動附加它。

 newmail.Subject = 'Testing Mail' 

在哪裡:

變數“newmail”用作新接收的電子郵件訊息引用的儲存機制。

電子郵件的主題是作為溝通焦點的話題或主題,可以根據個人喜好進行客製化。

您可以將指定的收件者納入「收件者」和「副本」電子郵件欄位中,如下所示:

 newmail.To = '[email protected]'
newmail.CC = '[email protected]' 

在哪裡:

⭐收件者:主要收件者的電子郵件地址。

⭐CC:複製的電子郵件收件者。

類似地,當匿名向所有預期收件人發送信件時,可以利用抄送指令附加的後續聲明來包含密件副本 (BCC) 欄位。

 newmail.BCC = '[email protected]' 

Python 與 Microsoft Outlook 互動的能力可在利用腳本語言的同時無縫整合其功能。這意味著即使使用Python 處理電子郵件通信,也可以透過簡單地在「收件人」、「副本」或「密件副本」欄位中包含分號作為分隔符號來向多個收件者發送訊息。

指定預期收件者和通訊主題後,您可以繼續在新建立的電子郵件項目正文中撰寫郵件內容,該郵件隨後將透過上述「收件者」和「 CC」欄位。

 newmail.Body= 'Hello, this is a test email to showcase how to send emails from Python and Outlook.' 

為了在您的電子郵件中包含補充文件,請使用以下說明:

 attach = 'C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
newmail.Attachments.Add(attach) 

該電子郵件已準備好發送,並提供了兩種可用的替代方案。人們可以選擇在將其郵件轉發給預期收件者之前先仔細閱讀其郵件,方法是使用「顯示」命令,如下所述:

 newmail.Display() 

或者,對於不想在發送之前查看電子郵件並選擇立即發送的人,可以將 Display() 命令替換為 Send() 命令。

 newmail.Send() 

透過 Send() 函數發送電子郵件可能有些困難,因為它不提供訊息內容的初步預覽。使用此功能時請務必謹慎,特別是對於經常修改電子郵件內容的人。

這是完整的程式碼:

 import win32com.client
ol=win32com.client.Dispatch("outlook.application")
olmailitem=0x0 #size of the new email
newmail=ol.CreateItem(olmailitem)
newmail.Subject= 'Testing Mail'
newmail.To='[email protected]'
newmail.CC='[email protected]'
newmail.Body= 'Hello, this is a test email.'

# attach='C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
# newmail.Attachments.Add(attach)

# To display the mail before sending it
# newmail.Display()

 newmail.Send() 

/bc/images/test-email-in-outlook.jpg

成功執行程式碼後,將自動發送電子郵件。如果在傳送郵件的過程中出現任何問題,可能是由於 Outlook 的設定問題造成的。要開始解決此問題,請考慮檢查並解決已知會導致此類複雜情況的典型 Outlook 問題。

Python 電子郵件自動化的好處

使用 Python 自動化您的電子郵件,您無需每次撰寫郵件時都開啟 Microsoft Outlook。對於那些在日常生活中經常使用 Python 但發現持續存取電子郵件用戶端的行為很乏味的人來說,這種方法提供了一個方便的替代方案。

人們可以有效地利用 Python 透過最少的程式碼行創建自動電子郵件通信,而不是投入大量時間來執行重複性職責。