Quản lý tin nhắn Gmail với IGmailClient trong Python
Aspose.Email cho Python qua .NET cung cấp khả năng mở rộng để làm việc với tài khoản Gmail thông qua IGmailClient lớp. Điều này bao gồm liệt kê, gửi, thêm, lấy và xóa tin nhắn, cũng như quản lý bộ lọc Gmail.
Trước khi sử dụng IGmailClient, xác thực bằng ID client, client secret, refresh token và địa chỉ email của bạn. Sau đó tạo một thể hiện khách hàng Gmail:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Gửi email bằng Gmail API
Để gửi một email có tệp đính kèm qua tài khoản Gmail, sử dụng send_message phương thức của IGmailClient lớp.
Đoạn mã mẫu sau đây minh họa cách tạo và gửi một email có tệp đính kèm bằng cách sử dụng Gmail API:
from aspose.email import MailMessage, Attachment
# Create the message
message = MailMessage("sender@example.com", "recipient@example.com", "Weekly Report", "Attached is the weekly report.")
# Add an attachment
attachment_path = "path/to/report.pdf"
message.attachments.add(Attachment(attachment_path))
# Send the message
message_id = client.send_message(message)
print(f"Message with attachment sent! ID: {message_id}")
Thêm một tin nhắn vào thư mục Gmail
Để thêm tin nhắn trực tiếp vào hộp thư Gmail, bỏ qua phân loại tiêu chuẩn, sử dụng các phương pháp sau:
- append_message(msg) đối với hành vi mặc định.
- append_message(msg, label_name) để chỉ định một nhãn tùy chỉnh.
Đoạn mã mẫu bên dưới minh họa cách tạo một tin nhắn email và thêm nó vào hộp thư đến của người nhận với một nhãn cụ thể bằng cách sử dụng khách hàng Gmail:
message = MailMessage("sender@example.com", "recipient@example.com", "Subject for inbox message", "Body of the message")
# Append the message to the inbox with a label
message_id = client.append_message(message, "INBOX")
print(f"Message appended to the Inbox. ID: {message_id}")
Liệt kê tin nhắn Gmail
Bạn có thể lấy danh sách tất cả tin nhắn trong hộp thư Gmail bằng cách sử dụng list_messages() phương thức của IGmailClient lớp. Mỗi mục trong danh sách trả về là một GmailMessageInfo đối tượng chứa siêu dữ liệu nhẹ như ‘id’ và ’thread_id’.
Đoạn mã mẫu bên dưới minh họa cách truy xuất và hiển thị thông tin về tất cả các tin nhắn Gmail trong hộp thư đến của người dùng:
# List all Gmail messages
messages = client.list_messages()
# Print basic info for each message
for i, msg_info in enumerate(messages):
print(f"Message {i + 1}: ID = {msg_info.id}, Thread ID = {msg_info.thread_id}")
Lấy nội dung tin nhắn Gmail
Sau khi lấy siêu dữ liệu tin nhắn, sử dụng fetch_message(message_id) để tải xuống toàn bộ nội dung của một tin nhắn cụ thể dưới dạng một MailMessage đối tượng. Điều này cho phép truy cập vào tiêu đề, nội dung, tệp đính kèm và các chi tiết khác của tin nhắn.
Đoạn mã mẫu bên dưới minh họa cách lấy và hiển thị nội dung của ba tin nhắn Gmail đầu tiên trong hộp thư đến của người dùng:
# Fetch and display content for the first 3 messages
for i in range(min(3, len(messages))):
message = client.fetch_message(messages[i].id)
print(f"Message {i + 1}")
print("Subject:", message.subject)
print("Body:", message.body)
Xóa tin nhắn Gmail
Sử dụng delete_message(message_id, move_to_trash) phương thức của IGmailClient lớp để xóa một tin nhắn. Bạn có thể chuyển nó vào thùng rác (không vĩnh viễn) hoặc xóa ngay lập tức và vĩnh viễn bằng cách bỏ tham số thứ hai hoặc truyền False.
Mẫu mã dưới đây minh họa cách di chuyển ba tin nhắn đầu tiên từ danh sách tin nhắn (như email) vào thùng rác:
# Move the first 3 messages to trash
for i in range(min(3, len(messages))):
client.delete_message(messages[i].id, True) # True = move to trash
print(f"Message {i + 1} moved to trash.")
Quản lý bộ lọc Gmail
Aspose.Email cho Python cung cấp các phương thức sau của IGmailClient lớp để tự động hóa quá trình thiết lập bộ lọc để sắp xếp email đến dựa trên tiêu đề và quản lý các bộ lọc hiện có trong tài khoản email Google:
list_filters()- Lấy tất cả bộ lọc đã áp dụng cho hộp thư.create_filter(filter)- Thêm bộ lọc mới với tiêu chí và hành động tùy chỉnh.get_filter(id)- Lấy chi tiết bộ lọc cụ thể.delete_filter(id)- Xóa bộ lọc vĩnh viễn.
Tạo và Liệt kê bộ lọc Gmail
Mẫu mã sau minh họa cách tạo và quản lý bộ lọc email bằng thư viện Aspose.Email đặc biệt cho client Google:
from aspose.email.clients.google.filters import Filter, Criteria, Action
# Create a new filter
filter_obj = Filter()
filter_obj.matching_criteria = Criteria()
filter_obj.matching_criteria.subject = "Important"
filter_obj.action = Action()
filter_obj.action.add_label_ids = ["IMPORTANT"]
# Create the filter
filter_id = client.create_filter(filter_obj)
print(f"Filter created! ID: {filter_id}")
# List all filters
filters = client.list_filters()
for f in filters:
print(f"Filter ID: {f.id}")
Xóa bộ lọc Gmail
Mẫu mã sau minh họa cách xóa tất cả bộ lọc khỏi tài khoản Gmail:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")