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.
- 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.
- Buat sebuah instansi dari MailQueryBuilder untuk menyusun kriteria pencarian untuk memfilter email.
- Memfilter berdasarkan Subjek:
- Email yang berisi "Newsletter" dalam baris subjek ditentukan sebagai kondisi filter.
- 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.
- 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).
- Memfilter berdasarkan Penerima:
- Sebuah filter ditentukan untuk menemukan email yang dikirim ke penerima tertentu.
- Gabungkan kueri menggunakan operator OR untuk mencari email yang cocok dengan subjek tertentu atau dikirim dari alamat spesifik.
- Filter Sensitif Huruf Besar/Kecil:
- Filter sensitif huruf besar/kecil untuk subjek yang berisi "Newsletter" ditentukan (ditandai dengan parameter True).
- Daftar Pesan:
- Metode list_messages() dipanggil dengan kueri yang dibangun untuk mengambil pesan yang difilter dari kotak surat.
- 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)