Cách tự động hóa email Outlook bằng Python

Tích hợp Outlook với các ứng dụng Python để tạo, soạn thảo và gửi email theo kế hoạch. Dưới đây là cách tự động hóa email Outlook bằng Python.

Tự động gửi email

Python có thể tự động hóa nhiều hoạt động và bạn có thể đạt được những chức năng mong muốn chỉ bằng vài dòng code. Ngôn ngữ này đã phổ biến ở nhiều lĩnh vực, từ phân tích dữ liệu tới quản trị hệ thống.

Outlook là một client email phổ biến. Bạn có thể dùng các tính năng tự động Outlook của Python để gửi email nhanh chóng mà không cần phải tốn quá nhiều công sức.

Sau đây là chi tiết cách gửi email tự động từ Python bằng Microsoft Outlook.

Điều kiện cần có

Để bắt đầu, tải và cài những chương trình sau:

  • Microsoft Outlook: Bạn có thể dùng Outlook với Gmail hoặc bất kỳ nhà cung cấp email khác.
  • Win32com.client: Thư viện bên thứ ba để kết nối app Microsoft.

Cài đặt win32com.client

Win32com.client là một phần không thể thiếu của code này. Bạn cần một thư viện đầy đủ tính năng để thiết lập kết nối giữa Microsoft Outlook và Python.

Kiểm tra phiên bản win32com.client

Trước khi cài đặt, bạn có thể kiểm tra xem liệu win32com đã cài trên máy. Một số phiên bản IDE mặc định cung cấp gói này. Bạn có thể kiểm tra xem liệu nó có sẵn với lệnh sau:

python -m pip show pywin32

Sau khi chạy lệnh trên, nếu nhận được một số phiên bản, bạn không cần cài đặt lại nó.

Kiể tra phiên bản Win 32

Sau đó, nếu nhận được thông báo lỗi sau, bạn cần cài đặt thư viện win32com trên hệ thống:

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

Cài đặt thư viện win32com

Mở thông báo nhắc nhở và nhập lệnh pip để cài đặt thư viện từ cửa sổ terminal.

python -m pip install pywin32

Pywin32

Làm theo hướng dẫn trên màn hình để hoàn tất quá trình này. Bạn có thể dùng lệnh show cài đặt trước để xác minh xem win32com đã được cài thành công trên hệ thống hay chưa.

python -m pip show pywin32

Gửi email từ Python bằng Outlook

Microsoft Outlook là một trong số email client lâu đời và được sử dụng rộng rãi nhất. Nó nằm trong top nhà cung cấp email phổ biến nhất hiện nay, chỉ sau Gmail và Yahoo. Không có gì đáng ngạc nhiên với mối liên kết tự động giữa Outlook và Python. Chỉ bằng một số tinh chỉnh cơ bản, bạn có thể dễ dàng gửi email nhanh chóng.

Sau khi đáp ứng đủ điều kiện trên, giờ là lúc bắt đầu viết code để tự động gửi email từ Outlook bằng Python. Để bắt đầu, bạn cần nhập thư viện win32com.client bằng lệnh import.

import win32com.client

Giờ bạn có thể viết code kết nối Python và ứng dụng email Microsoft Outlook.

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

Trong đó:

  • ol chứa tham chiếu kết nối.
  • Win32com.client là một thư viện Windows mà bạn có thể dùng để thiết lập kết nối giữa Python và Outlook.
  • Dispatch là hàm tạo kết nối.
  • Outlook.Application là tên của ứng dụng kết nối.

Trường nhập lệnh

Tiếp theo, bạn cần xác định kích thước của thông báo email mới để python hiểu nơi nội dung cần được cập nhật.

# kích thước của email mới
olmailitem = 0x0

Trong đó:

Olmailitem: Biến mới để chứa các kích thước.

0x0: Kích thước của thông báo email mới trong bộ nhớ của Python.

Các hàm của Python sẽ mở một mục email mới, ngay khi bạn xác định kích thước nội dung email.

newmail = ol.CreateItem(olmailitem)

Trong đó:

  • Newmail: Biến mới để chứa tham chiếu email mới.
  • ol: Tham chiếu của kết nối đã tạo trước đó giữa Python và Outlook.
  • CreateItem(olmailitem): Lệnh tạo một bản nháp email mới.

Mỗi email cần một dòng chủ đề. Bạn có thể xác định nó trong code để Python tự động thêm nó trước khi gửi email tới người nhận.

newmail.Subject = 'Testing Mail'

Trong đó:

  • Newmail: Biến để lưu trữ tham chiếu mục mail mới.
  • Subject: Có thể đa dạng, tùy thuộc vào điều bạn muốn làm chủ đề cho email.

Bạn có thể thêm người nhận mong muốn trong phần To CC như sau:

newmail.To = 'xyz@example.com'
newmail.CC = 'xyz@example.com'

Trong đó:

  • To: Địa chỉ email của người nhận chính.
  • CC: Người nhận email đã được sao chép.

Tương tự, thậm chí bạn có thể thêm tên BCC, trong trường hợp bạn muốn gửi email ẩn danh tới người nhận. Toàn bộ việc bạn phải làm là chuyển lệnh sau ra đằng sau lệnh CC:

newmail.BCC = 'xyz@example.com'

Outlook của Python không hạn chế các khả năng và tính năng vốn có của Outlook. Ví dụ, ngay cả khi bạn đang dùng Python để quản lý các phản hồi của client email, bạn vẫn có thể gửi email tới nhiều người nhận. Chỉ cần thêm dấu phân tách (;) giữa ID email trong cột To/CC/BCC. Thế là xong!

Cuối cùng, sau khi xác định chủ đề và người nhận, bạn có thể thêm nội dung email vào mục mail mới trước khi gửi nó tới người nhận trong cột To CC.

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

Để thêm các tệp đính kèm vào email, bạn có thể dùng lệnh sau:

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

Giờ email đã sẵn sàng gửi đi. Bạn có hai lựa chọn để sử dụng. Nếu muốn xem trước email trước khi gửi nó tới người nhận, bạn có thể dùng lệnh Display() như sau:

newmail.Display()

Ngoài ra, nếu không muốn xem trước email và gửi nó trực tiếp, bạn có thể thay lệnh Display() bằng Send().

newmail.Send()

Đây là code hoàn thiện:

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='xyz@example.com'
newmail.CC='xyz@example.com'
newmail.Body= 'Hello, this is a test email.'

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

# Hiện mail trước khi gửi nó đi
# newmail.Display() 

newmail.Send()

Testing Mail

Sau khi triển khai code thành công, bạn có thể tự động gửi email. Trong trường hợp phát sinh lỗi, bạn sẽ thấy thông báo ngay thời điểm gửi email. Lúc này, bạn nên tìm hiểu nguyên nhân để có giải pháp khắc phục phù hợp.

Thứ Sáu, 03/11/2023 16:56
51 👨 337
0 Bình luận
Sắp xếp theo
    ❖ Python