Mengelola Pesan Gmail dengan IGmailClient di Python

Aspose.Email untuk Python via .NET menyediakan kemampuan tambahan untuk bekerja dengan akun Gmail melalui IGmailClient kelas. Ini mencakup pencantuman, pengiriman, penambahan, pengambilan, dan penghapusan pesan, serta mengelola filter Gmail.

Sebelum menggunakan IGmailClient, otentikasi menggunakan ID klien, rahasia klien, token penyegar, dan alamat email Anda. Kemudian buat instance klien Gmail:

from aspose.email.clients.google import GmailClient

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

Kirim Email menggunakan Gmail API

Untuk mengirim email dengan lampiran melalui akun Gmail, gunakan send_message metode dari IGmailClient kelas.

Contoh kode berikut menunjukkan cara membuat dan mengirim email dengan lampiran menggunakan 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}")

Tambahkan Pesan ke Folder Gmail

Untuk menambahkan pesan secara langsung ke kotak surat Gmail, melewati klasifikasi standar, gunakan metode berikut:

Contoh kode di bawah ini menunjukkan cara membuat pesan email dan menambahkan ke kotak masuk penerima dengan label tertentu menggunakan klien 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}")

Daftar Pesan Gmail

Anda dapat mengambil daftar semua pesan dalam kotak surat Gmail menggunakan list_messages() metode dari IGmailClient kelas. Setiap item dalam daftar yang dikembalikan adalah sebuah GmailMessageInfo objek yang berisi metadata ringan seperti ‘id’ dan ’thread_id’.

Contoh kode di bawah ini menunjukkan cara mengambil dan menampilkan informasi tentang semua pesan Gmail di kotak masuk pengguna:

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

Ambil Konten Pesan Gmail

Setelah mengambil metadata pesan, gunakan fetch_message(message_id) untuk mengunduh konten lengkap dari pesan tertentu sebagai sebuah MailMessage objek. Ini memungkinkan akses ke subjek, isi, lampiran, dan detail pesan lainnya.

Contoh kode di bawah ini menunjukkan cara mengambil dan menampilkan konten tiga pesan Gmail pertama dari kotak masuk pengguna:

# 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)

Hapus Pesan Gmail

Gunakan delete_message(message_id, move_to_trash) metode dari IGmailClient kelas untuk menghapus sebuah pesan. Anda dapat memindahkannya ke tempat sampah (tidak permanen) atau menghapusnya secara langsung dan permanen dengan menghilangkan parameter kedua atau memberikan nilai False.

Contoh kode di bawah ini menunjukkan cara memindahkan tiga pesan pertama dari daftar pesan (seperti email) ke tempat sampah:

# 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.")

Kelola Filter Gmail

Aspose.Email untuk Python menyediakan metode‑metode berikut dari IGmailClient kelas untuk mengotomatisasi proses penyiapan filter guna mengorganisir email masuk berdasarkan subjeknya dan mengelola filter yang ada di akun email Google:

  • list_filters() - Mengambil semua filter yang diterapkan pada kotak surat.
  • create_filter(filter) - Menambahkan filter baru dengan kriteria dan tindakan khusus.
  • get_filter(id) - Mengambil detail filter tertentu.
  • delete_filter(id) - Menghapus filter secara permanen.

Buat dan Daftar Filter Gmail

Contoh kode berikut menunjukkan cara membuat dan mengelola filter email menggunakan pustaka Aspose.Email khusus untuk klien 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}")

Hapus Filter Gmail

Contoh kode berikut menunjukkan cara menghapus semua filter dari akun Gmail:

filters = client.list_filters()

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