Python'da IGmailClient ile Gmail Mesajlarını Yönetme

.NET üzerinden Python için Aspose.Email, Gmail hesaplarıyla çalışmak için genişletilmiş yetenekler sunar IGmailClient sınıf. Bu, mesajları listeleme, gönderme, ekleme, getirme ve silme ile Gmail filtrelerini yönetmeyi içerir.

Kullanmadan önce IGmailClient, istemci kimliğiniz, istemci gizliniz, yenileme jetonunuz ve e-posta adresinizle kimlik doğrulaması yapın. Ardından bir Gmail istemci örneği oluşturun:

from aspose.email.clients.google import GmailClient

client = GmailClient.get_instance(client_id, client_secret, refresh_token, email)

Gmail API’sı Kullanarak E-posta Gönder

Bir Gmail hesabı üzerinden ekli e-posta göndermek için şunu kullanın send_message metodu IGmailClient sınıf.

Aşağıdaki kod örneği, Gmail API’sı kullanarak ekli bir e-posta oluşturup göndermeyi gösterir:

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}")

Bir Gmail Klasörüne Mesaj Ekle

Mesajları doğrudan bir Gmail posta kutusuna eklemek, standart sınıflandırmayı atlamak için aşağıdaki yöntemleri kullanın:

Aşağıdaki kod örneği, Gmail istemcisi kullanarak bir e-posta mesajı oluşturmayı ve belirli bir etikete sahip olarak alıcının gelen kutusuna eklemeyi gösterir:

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 Mesajlarını Listele

Bir Gmail posta kutusundaki tüm mesajların listesini şunu kullanarak alabilirsiniz list_messages() metodu IGmailClient sınıf. Döndürülen listedeki her öğe bir GmailMessageInfo ‘id’ ve ’thread_id’ gibi hafif meta verilere sahip nesne.

Aşağıdaki kod örneği, kullanıcının gelen kutusundaki tüm Gmail mesajları hakkında bilgi nasıl alınır ve görüntülenir gösterir:

# 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 Mesaj İçeriğini Getir

Mesaj meta verileri alındıktan sonra, şunu kullanın fetch_message(message_id) belirli bir mesajın tam içeriğini bir MailMessage nesne. Bu, konu, gövde, ekler ve diğer mesaj detaylarına erişim sağlar.

Aşağıdaki kod örneği, kullanıcının gelen kutusundaki ilk üç Gmail mesajının içeriğini nasıl alıp görüntüleyeceğini gösterir:

# 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 Mesajlarını Sil

Kullan delete_message(message_id, move_to_trash) metodu IGmailClient Bir mesajı silmek için sınıf. Mesajı çöp kutusuna (kalıcı olmayan) taşıyabilir ya da ikinci parametreyi atlayarak ya da False geçerek hemen ve kalıcı olarak silebilirsiniz.

Aşağıdaki kod örneği bir mesaj listesinde (ör. e-postalar) ilk üç mesajı çöp kutusuna nasıl taşıyacağınızı gösterir:

# 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 aşağıdaki yöntemleri sağlar IGmailClient Konu satırına göre gelen e-postaları düzenlemek ve bir Google e-posta hesabında mevcut filtreleri yönetmek için bir filtre kurma sürecini otomatikleştiren sınıf:

  • list_filters() - Posta kutusuna uygulanan tüm filtreleri alır.
  • create_filter(filter) - Özel kriter ve eylemlerle yeni bir filtre ekler.
  • get_filter(id) - Belirli filtre detaylarını getirir.
  • delete_filter(id) - Filtreleri kalıcı olarak kaldırır.

Create and List Gmail Filters

Aşağıdaki kod örneği Aspose.Email kütüphanesini özel olarak Google istemcisi için bir e-posta filtresi oluşturup yönetmeyi gösterir:

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

Aşağıdaki kod örneği Gmail hesabındaki tüm filtreleri nasıl kaldıracağınızı gösterir:

filters = client.list_filters()

# Delete each filter
for f in filters:
    client.delete_filter(f.id)
    print(f"Filter ID: {f.id} deleted.")