Pythonで IGmailClient を使用して Gmail メッセージを管理する
Aspose.Email for Python via .NET は、Gmail アカウントを操作するための拡張機能を提供します。 IGmailClient クラス。メッセージの一覧取得、送信、追加、取得、削除、および Gmail フィルタの管理が含まれます。
使用する前に IGmailClient、クライアント ID、クライアント シークレット、リフレッシュ トークン、メールアドレスで認証します。その後、Gmail クライアントインスタンスを作成します。
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Gmail API を使用したメール送信
Gmail アカウントを介して添付ファイル付きメールを送信するには、以下を使用します。 send_message メソッド( IGmailClient クラス。
以下のコードサンプルは、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}")
Gmail フォルダーにメッセージを追加
メッセージを標準の分類をバイパスして直接 Gmail メールボックスに追加するには、以下の方法を使用します。
- append_message(msg) デフォルト動作の場合。
- append_message(msg, label_name) カスタムラベルを指定するために。
以下のコードサンプルは、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}")
Gmail メッセージの一覧取得
Gmail のメールボックス内のすべてのメッセージのリストは、以下を使用して取得できます。 list_messages() メソッド( IGmailClient クラス。返されたリストの各項目は GmailMessageInfo ‘id’ と ’thread_id’ などの軽量メタデータを含むオブジェクトです。
以下のコードサンプルは、ユーザーの受信トレイにあるすべての Gmail メッセージの情報を取得し、表示する方法を示しています。
# 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}")
Gmail メッセージ内容の取得
メッセージのメタデータを取得した後、使用します。 fetch_message(message_id) 特定のメッセージの全内容をダウンロードするための MailMessage オブジェクト。このオブジェクトにより、件名、本文、添付ファイル、その他のメッセージ詳細にアクセスできます。
以下のコードサンプルは、ユーザーの受信トレイから最初の3つの Gmail メッセージの内容を取得し、表示する方法を示しています。
# 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)
Gmail メッセージの削除
使用する delete_message(message_id, move_to_trash) メソッド( IGmailClient メッセージを削除するクラスです。第2パラメータを省略するか False を渡すことで、ゴミ箱に移動する(一時的)か、即座に永久削除するかを選択できます。
以下のコード例は、メッセージ(メールなど)のリストから最初の 3 通をゴミ箱に移動する方法を示しています:
# 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.")
Manage Gmail Filters
Aspose.Email for Python は以下のメソッドを提供します IGmailClient 件名に基づいて受信メールを整理するフィルタを設定し、Google メールアカウントの既存フィルタを管理するプロセスを自動化するクラス:
list_filters()- メールボックスに適用されたすべてのフィルタを取得します。create_filter(filter)- カスタム条件とアクションで新しいフィルタを追加します。get_filter(id)- 特定のフィルタ詳細を取得します。delete_filter(id)- フィルタを永久に削除します。
Create and List Gmail Filters
以下のコード例は、Google クライアント向けに Aspose.Email ライブラリを使用してメールフィルタを作成および管理する方法を示しています:
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}")
Delete Gmail Filters
以下のコード例は、Gmail アカウントからすべてのフィルタを削除する方法を示しています:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")