Hantera Gmail‑meddelanden med IGmailClient i Python
Aspose.Email för Python via .NET erbjuder utökade möjligheter att arbeta med Gmail‑konton via IGmailClient klass. Detta inkluderar listning, sändning, bifogning, hämtning och borttagning av meddelanden, samt hantering av Gmail‑filter.
Innan du använder IGmailClient, autentisera med ditt klient‑ID, klienthemlighet, uppdateringstoken och e‑postadress. Skapa sedan en Gmail‑klientinstans:
from aspose.email.clients.google import GmailClient
client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)
Skicka e‑post med Gmail API
För att skicka ett e‑postmeddelande med en bilaga via ett Gmail‑konto, använd send_message metod för IGmailClient klass.
Följande kodexempel visar hur du skapar och skickar ett e‑postmeddelande med en bilaga via 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}")
Lägg till ett meddelande i en Gmail-mapp
För att lägga till meddelanden direkt i en Gmail-inkorg, utan standardklassificering, använd följande metoder:
- append_message(msg) för standardbeteende.
- append_message(msg, label_name) för att ange en anpassad etikett.
Kodexemplet nedan visar hur du skapar ett e‑postmeddelande och lägger till det i mottagarens inkorg med en specifik etikett med Gmail‑klienten:
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}")
Lista Gmail-meddelanden
Du kan hämta en lista över alla meddelanden i en Gmail-inkorg med hjälp av list_messages() metod för IGmailClient klass. Varje objekt i den returnerade listan är en GmailMessageInfo objekt som innehåller lättviktighetsmetadata såsom ‘id’ och ’thread_id’.
Kodexemplet nedan visar hur du hämtar och visar information om alla Gmail-meddelanden i användarens inkorg:
# 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}")
Hämta Gmail-meddelandeinnehåll
Efter att ha hämtat meddelandemetadata, använd fetch_message(message_id) för att ladda ner hela innehållet i ett specifikt meddelande som en MailMessage objekt. Detta möjliggör åtkomst till ämne, kropp, bilagor och andra meddelandedetaljer.
Kodexemplet nedan visar hur du hämtar och visar innehållet i de första tre Gmail-meddelandena från användarens inkorg:
# 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)
Ta bort Gmail-meddelanden
Använd delete_message(message_id, move_to_trash) metod för IGmailClient klass för att radera ett meddelande. Du kan antingen flytta det till papperskorgen (icke‑permanent) eller radera det omedelbart och permanent genom att utelämna den andra parametern eller skicka False.
Kodexemplet nedan visar hur du flyttar de första tre meddelandena från en lista med meddelanden (t.ex. e‑post) till papperskorgen:
# 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 för Python tillhandahåller följande metoder för IGmailClient klass för att automatisera processen att skapa ett filter för att organisera inkommande e‑post baserat på ämnesraden och hantera befintliga filter i ett Google‑e‑postkonto:
list_filters()- Hämtar alla filter som tillämpats på brevlådan.create_filter(filter)- Lägger till ett nytt filter med anpassade kriterier och åtgärder.get_filter(id)- Hämtar specifika filterdetaljer.delete_filter(id)- Tar bort filter permanent.
Create and List Gmail Filters
Följande kodexempel visar hur du skapar och hanterar ett e‑postfilter med Aspose.Email‑biblioteket, specifikt för Google‑klienten:
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
Följande kodexempel visar hur du tar bort alla filter från Gmail‑kontot:
filters = client.list_filters()
# Delete each filter
for f in filters:
client.delete_filter(f.id)
print(f"Filter ID: {f.id} deleted.")