Cách tự động hóa email Outlook bằng Python
Python có nhiều thứ để cung cấp theo cách tự động hóa và bạn có thể đạt được nhiều chức năng chỉ với một vài dòng mã. Ngôn ngữ này đã trở nên phổ biến trên nhiều lĩnh vực, từ phân tích dữ liệu đến quản trị hệ thống.
Outlook là một ứng dụng thư điện tử được sử dụng rộng rãi và việc sử dụng các khả năng của Python để tự động hóa Outlook cho phép người dùng gửi thư một cách hiệu quả mà không tốn nhiều công sức.
Để có được kiến thức về quy trình gửi tin nhắn tự động qua email bằng ứng dụng Microsoft Outlook bằng Python, bạn bắt buộc phải tiếp tục đọc.
Đáp ứng một số điều kiện tiên quyết
Để bắt đầu quá trình, bạn sẽ cần lấy và thiết lập các thành phần phần mềm cần thiết. Điều này có thể liên quan đến việc tải xuống và cài đặt các ứng dụng hoặc mô-đun cụ thể cần thiết cho tác vụ hiện tại. Khi những thứ này đã được cài đặt, bạn có thể tiến hành định cấu hình chúng theo nhu cầu của mình và tích hợp chúng vào quy trình làm việc của bạn nếu thích hợp.
Microsoft Outlook là một ứng dụng email phổ biến yêu cầu cài đặt trên máy tính của bạn để hoạt động bình thường. Nó có thể được sử dụng cùng với nhiều nhà cung cấp email khác nhau, bao gồm tài khoản Gmail và các tài khoản khác.
Việc sử dụng mô-đun win32com.client
cho phép tương tác liền mạch với các ứng dụng khác nhau của Microsoft thông qua Python. Trong số các ứng dụng này, Microsoft Outlook là một ví dụ đáng chú ý cần tích hợp thư viện này để thiết lập kết nối với Outlook Exchange Server.
Cài đặt win32com.client
Việc sử dụng win32com.client
tạo thành một thành phần quan trọng trong tập lệnh này, tạo điều kiện cho khả năng tương tác liền mạch giữa Microsoft Outlook và Python bằng cách tận dụng một thư viện toàn diện cho phép thiết lập giao tiếp mạnh mẽ giữa hai nền tảng này.
Kiểm tra phiên bản win32com.client
Trước khi cài đặt, người ta có thể xác minh xem mô-đun win32com đã được cài đặt sẵn trên hệ thống của họ chưa. Trong một số trường hợp nhất định, các phiên bản Môi trường Phát triển Tích hợp (IDE) cụ thể bao gồm gói này như một thành phần tiêu chuẩn. Tính khả dụng của mô-đun win32com có thể được xác nhận bằng lệnh sau.
python -m pip show pywin32
Để giải quyết lỗi “‘pip’không được nhận dạng là lệnh nội bộ hoặc bên ngoài’", có thể cần phải cài đặt pip trên hệ điều hành của bạn nếu nó chưa có sẵn. Điều này có thể được thực hiện bằng cách tải xuống và chạy trình cài đặt thích hợp cho Windows, macOS hoặc Linux từ trang web Python chính thức hoặc sử dụng các trình quản lý gói như Homebrew (dành cho macOS) hoặc APT/APT-GET (dành cho Ubuntu).
Sau khi thực hiện lệnh được đề cập trước đó, trong trường hợp bạn được cung cấp số phát hành, không cần phải cài đặt bổ sung vì nó đã được cài đặt trên hệ thống của bạn.
Trong trường hợp bạn gặp thông báo lỗi cho biết thành phần bắt buộc bị thiếu, bạn có thể cần phải cài đặt thư viện “win32com” trên thiết bị của mình để giải quyết vấn đề.
'pywin32' is not recognized as an internal or external command, operable program, or batch file.
Cài đặt Thư viện win32com
Vui lòng mở một terminal hoặc cửa sổ nhắc lệnh, điều hướng đến thư mục mong muốn và nhập lệnh pip thích hợp để cài đặt thư viện được yêu cầu.
python -m pip install pywin32
Vui lòng làm theo lời nhắc trên màn hình để hoàn tất quá trình cài đặt. Để xác nhận rằng win32com
đã được cài đặt thành công, bạn có thể sử dụng lệnh show
sau khi hoàn tất cài đặt.
python -m pip show pywin32
Gửi email từ Python bằng Outlook
Outlook là một ứng dụng email cổ xưa và thịnh hành, giữ một vị trí quan trọng trong số các ứng dụng email hàng đầu, chỉ đứng sau Gmail và Yahoo về mức độ phổ biến. Đáng chú ý là Python cung cấp khả năng tích hợp liền mạch với Outlook, cho phép người dùng dễ dàng quản lý thư từ email của họ từ hầu hết mọi nơi.
Sau khi đáp ứng các điều kiện tiên quyết nói trên, giờ là lúc bắt đầu viết mã để tự động gửi email qua Outlook bằng Python. Để bắt đầu quá trình này, người ta phải kết hợp thư viện win32com.client thông qua câu lệnh nhập.
import win32com.client
Bằng cách sử dụng Python, giờ đây bạn có thể thiết lập kết nối với nền tảng e-mail của Microsoft, Outlook.
ol = win32com.client.Dispatch('Outlook.Application')
Ở đâu:
⭐ollưu trữ tham chiếu kết nối.
Thư viện máy khách Win32COM đóng vai trò như một giao diện hỗ trợ giao tiếp giữa Python và Microsoft Outlook, cho phép người dùng tận dụng song song các chức năng của cả hai nền tảng.
Chức năng điều phối phục vụ việc thiết lập kết nối thông qua việc triển khai nó.
Đối tượng Outlook.Application đại diện cho ứng dụng được sử dụng để thiết lập kết nối với Microsoft Outlook và đóng vai trò là khối xây dựng cơ bản để làm việc với các email trong Extensis Mailer.
Để Python cập nhật hiệu quả vùng được chỉ định của thư email, điều quan trọng là phải thiết lập kích thước của thư nói trên. Điều này sẽ cho phép chương trình xác định chính xác nơi thông tin cần được sửa đổi.
# size of the new email
olmailitem = 0x0
Ở đâu:
Một biến mới đã được giới thiệu, được chỉ định là “olmailitem”, sẽ được sử dụng để lưu trữ thông tin về chiều.
Chiều của thư điện tử mới được tạo trong không gian lưu trữ nội bộ của chương trình Python là một sự trừu tượng được biểu thị bằng ký hiệu'0x0’.
Khi xác định các tham số thứ nguyên của thư email bằng Python, các chức năng của nó sẽ tự động tạo một mục email mới.
newmail = ol.CreateItem(olmailitem)
Ở đâu:
Một biến mới đã được giới thiệu, có tên là “newmail”, dùng làm không gian lưu trữ cho tham chiếu email mới nhất.
Mã được cung cấp thể hiện tham chiếu đến sự tích hợp có sẵn giữa Python và Microsoft Outlook, cho phép giao tiếp giữa hai nền tảng.
Hướng dẫn tạo một thông báo thư điện tử đang được thực hiện được gọi là “CreateItem(olmailitem)”, được thực thi bằng một lệnh.
Việc kết hợp một dòng chủ đề rõ ràng là điều cần thiết cho mọi tin nhắn điện tử và người ta có thể chỉ định nó theo chương trình để ứng dụng Python tự động thêm nó trước khi gửi thư đến người nhận dự kiến.
newmail.Subject = 'Testing Mail'
Ở đâu:
Biến newmail
đóng vai trò như một cơ chế lưu trữ để tham chiếu đến một email mới nhận được.
Chủ đề của email là một chủ đề hoặc chủ đề đóng vai trò là trọng tâm của giao tiếp và có thể được điều chỉnh theo sở thích của mỗi người.
Bạn có thể bao gồm những người nhận được chỉ định bằng cách kết hợp họ trong các trường email “Tới” và “CC”, như minh họa bên dưới:
newmail.To = '[email protected]'
newmail.CC = '[email protected]'
Ở đâu:
⭐Tới: Địa chỉ email của người nhận chính.
⭐CC: Sao chép người nhận email.
Theo cách tương tự, người ta có thể bao gồm trường bản sao ẩn (BCC) bằng cách sử dụng khai báo tiếp theo được thêm vào lệnh cc khi gửi thư từ ẩn danh tới tất cả người nhận dự kiến.
newmail.BCC = '[email protected]'
Khả năng tương tác với Microsoft Outlook của Python cho phép tích hợp liền mạch các chức năng của nó trong khi sử dụng ngôn ngữ kịch bản. Điều này có nghĩa là ngay cả khi sử dụng Python để xử lý liên lạc qua email, việc gửi thư đến nhiều người nhận vẫn có thể thực hiện được bằng cách chỉ cần đưa dấu chấm phẩy làm dấu phân cách trong các trường “Tới”, “Cc” hoặc “Bcc”.
Sau khi chỉ định (những) người nhận dự định và chủ đề thư của bạn, bạn có thể tiến hành soạn nội dung thư trong nội dung của một mục email mới được tạo, sau đó sẽ được truyền đến những người nhận được chỉ định thông qua “Tới” và “” đã nói ở trên. trường CC”.
newmail.Body= 'Hello, this is a test email to showcase how to send emails from Python and Outlook.'
Để bao gồm các tệp bổ sung với tin nhắn điện tử của bạn, hãy sử dụng các hướng dẫn sau:
attach = 'C:\\Users\\admin\\Desktop\\Python\\Sample.xlsx'
newmail.Attachments.Add(attach)
Email được chuẩn bị để gửi đi và trình bày hai lựa chọn thay thế có sẵn. Người ta có thể chọn xem qua trước lá thư của mình trước khi chuyển tiếp nó đến người nhận dự định bằng cách sử dụng lệnh “Hiển thị” theo cách được mô tả bên dưới:
newmail.Display()
Ngoài ra, đối với những người không muốn xem lại email trước khi gửi và chọn gửi ngay lập tức, người ta có thể thay thế lệnh Display() bằng lệnhSend().
newmail.Send()
Gửi email qua hàm Send() có thể hơi khó khăn vì nó không cung cấp bản xem trước sơ bộ về nội dung thư. Điều cần thiết là phải thận trọng khi sử dụng tính năng này, đặc biệt đối với những người thường xuyên sửa đổi nội dung email của mình.
Đây là mã hoàn chỉnh:
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()
Sau khi thực thi mã thành công, việc truyền email tự động sẽ diễn ra sau đó. Nếu có bất kỳ vấn đề nào phát sinh trong quá trình gửi email thì có thể do sự cố cấu hình trong Outlook. Để bắt đầu giải quyết vấn đề này, hãy xem xét việc kiểm tra và giải quyết các khó khăn điển hình của Outlook được biết là nguyên nhân gây ra những sự phức tạp như vậy.
Lợi ích của Tự động hóa email bằng Python
Việc sử dụng Python để tự động hóa email của bạn sẽ loại bỏ nhu cầu mở Microsoft Outlook mỗi khi bạn muốn soạn thư. Đối với những người thường xuyên sử dụng Python trong công việc hàng ngày nhưng thấy việc truy cập ứng dụng email thường xuyên tẻ nhạt, phương pháp này là một giải pháp thay thế thuận tiện.
Thay vì đầu tư nhiều thời gian vào việc thực hiện các nhiệm vụ định kỳ, người ta có thể sử dụng Python một cách hiệu quả để tạo thư từ email tự động thông qua một số dòng mã tối thiểu.