Mengambil Email dari Server POP3

Simpan Email ke Disk tanpa Penguraian

Untuk mengunduh pesan email dari server POP3 tanpa menguraikannya, Anda dapat menggunakan save_message metode dari Aspose.Email Pop3Client class. Potongan kode berikut menggambarkan cara menyimpan pesan menggunakan nomor urutnya, dalam hal ini nomor 1. save_message metode mempertahankan format EML asli tanpa menguraikan:

Urai Pesan Sebelum Menyimpan

Anda dapat mengambil pesan email tertentu dengan menggunakan fetch_message metode dari Pop3Client class, menentukan nomor urut yang diinginkan untuk objek klien. Contoh kode berikut menunjukkan cara mengambil pesan tertentu dan kemudian menyimpannya menggunakan subjeknya sebagai nama file dengan memanggil save metode pada objek msg:

import aspose.email as ae

client = ae.clients.pop3.Pop3Client("host", 995, "username", "password", ae.clients.SecurityOptions.AUTO)

# Fetch the message by its sequence number and Save the message using its subject as the file name
msg = client.fetch_message(1)
msg.save("first-message_out.eml", ae.SaveOptions.default_eml)

Filter Email dari Server berdasarkan Kriteria

Aspose.Email Pop3Client class menyediakan list_messages() metode yang mengambil semua pesan dari kotak surat. Untuk hanya mendapatkan pesan yang cocok dengan beberapa kondisi, gunakan overload list_messages(query) metode yang mengambil MailQuery sebagai argumen. The MailQuery class menyediakan berbagai properti untuk menentukan kondisi kueri, misalnya tanggal, subjek, pengirim, penerima, dan sebagainya.

Untuk membangun ekspresi pencarian, gunakan MailQueryBuilder class. Pertama, definisikan semua kondisi dan batasan yang diperlukan, lalu isi objek MailQuery dengan kueri yang dibuat oleh MailQueryBuilder. Pop3Client memanfaatkan objek MailQuery ini untuk mengambil informasi terfilter dari server.

Contoh kode berikut menunjukkan cara memfilter dan mengambil email dari akun Gmail berdasarkan berbagai kriteria termasuk subjek, tanggal internal, pengirim, dan penerima. Ini juga menampilkan filter sensitif huruf besar/kecil dan mendemonstrasikan cara membangun kueri kompleks secara efisien.

  1. Menghubungkan ke server POP3 Gmail menggunakan Pop3Client class dengan alamat server, port, nama pengguna, dan kata sandi yang ditentukan. Opsi keamanan disetel ke AUTO untuk koneksi aman.
  2. Buat sebuah instansi dari MailQueryBuilder untuk menyusun kriteria pencarian untuk memfilter email.
  3. Memfilter berdasarkan Subjek:
    • Email yang berisi "Newsletter" dalam baris subjek ditentukan sebagai kondisi filter.
  4. Memfilter berdasarkan Tanggal Internal:
    • Sebuah filter diatur untuk email yang diterima pada tanggal saat ini.
    • Filter tambahan ditambahkan untuk mengambil email yang diterima dalam seminggu terakhir.
  5. Memfilter berdasarkan Pengirim:
    • Filter diterapkan untuk mencari email dari alamat email tertentu (saqib.razzaq@127.0.0.1) dan untuk menyertakan email dari domain tertentu (SpecificHost.com).
  6. Memfilter berdasarkan Penerima:
    • Sebuah filter ditentukan untuk menemukan email yang dikirim ke penerima tertentu.
  7. Gabungkan kueri menggunakan operator OR untuk mencari email yang cocok dengan subjek tertentu atau dikirim dari alamat spesifik.
  8. Filter Sensitif Huruf Besar/Kecil:
    • Filter sensitif huruf besar/kecil untuk subjek yang berisi "Newsletter" ditentukan (ditandai dengan parameter True).
  9. Daftar Pesan:
    • Metode list_messages() dipanggil dengan kueri yang dibangun untuk mengambil pesan yang difilter dari kotak surat.
  10. Akhirnya, cetak jumlah pesan yang difilter.

Filter Email Berdasarkan Tanggal

Untuk mengambil pesan berdasarkan tanggal pengiriman, gunakan internal_date properti seperti yang ditunjukkan dalam contoh kode di bawah ini:

import aspose.email as ae
from datetime import datetime

builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())

Filter Email Berdasarkan Rentang Tanggal

Untuk mengambil pesan dalam rentang tanggal, gunakan yang sama internal_date properti yang menentukan rentang tanggal seperti yang ditunjukkan dalam contoh kode di bawah ini:

import aspose.email as ae
from datetime import datetime, timedelta

builder = ae.tools.search.MailQueryBuilder()
# Emails that arrived in last 7 days
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))

Filter Email Berdasarkan Pengirim

Untuk mengambil pesan dari pengirim tertentu, gunakan from_address properti seperti yang ditunjukkan dalam contoh kode di bawah ini:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")

Filter Email Berdasarkan Domain

Untuk mengambil pesan dari domain tertentu, gunakan from_address properti seperti yang ditunjukkan dalam contoh kode di bawah ini:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")

Filter Email Berdasarkan Penerima

Untuk mengambil pesan ke penerima tertentu, gunakan to properti seperti yang ditunjukkan dalam contoh kode di bawah ini:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")

Bangun Kuery Pencarian Kompleks

Kadang-kadang diperlukan untuk memenuhi lebih dari satu kueri. Aspose.Email memungkinkan menggabungkan kueri dalam beberapa pernyataan. Buat sebuah MailQueryBuilder objek dan gunakan propertinya untuk membangun kueri spesifik.

Gabungkan Kueri dengan AND

Potongan kode berikut menunjukkan cara menggabungkan kueri dengan operator AND:

import aspose.email as ae
from datetime import datetime, timedelta

builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.before(datetime.now())
builder.internal_date.since(datetime.today() - timedelta(days=7))
builder.from_address.contains("SpecificHost.com")

Gabungkan Kueri dengan OR

Potongan kode berikut menunjukkan cara menggabungkan kueri dengan operator OR:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))

Terapkan Filter Sensitif Huruf Besar/Kecil

API juga menyediakan kemampuan untuk memfilter email dari kotak surat berdasarkan kriteria sensitif huruf. Metode berikut dari StringComparisonField class menyediakan kemampuan untuk mencari email dengan menentukan flag sensitif huruf:

Metode Aspose.Email.StringComparisonField.contains(value, ignore_case) Metode Aspose.Email.StringComparisonField.equals(value, ignore_case) Metode Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Metode Aspose.Email.StringComparisonField.not_equals(value, ignore_case)

Potongan kode berikut menunjukkan cara mengimplementasikan kemampuan ini ke dalam proyek Anda:

import aspose.email as ae

builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)