POP3 Sunucusundan E-posta Alımı
Parse Etmeden E-postaları Diske Kaydet
POP3 sunucusundan e-posta mesajlarını ayrıştırmadan indirmek için şunu kullanabilirsiniz: save_message Aspose.Email’in metodu Pop3Client sınıfı. Aşağıdaki kod snippet’i, mesajı sıralama numarasıyla, bu örnekte 1 numarasıyla, nasıl kaydedeceğinizi gösterir. save_message metod, ayrıştırma yapmadan orijinal EML formatını korur:
Kaydetmeden Önce Mesajları Ayrıştır
Belirli bir e-posta mesajını şu şekilde alabilirsiniz: fetch_message metodu Pop3Client sınıfı, istemci nesnesi için istenen sıralama numarasını belirler. Aşağıdaki kod örneği, belirli bir mesajı nasıl alacağınızı ve ardından konusunu dosya adı olarak kullanarak ‘save’ metodunu çağırarak nasıl kaydedeceğinizi gösterir. save msg nesnesi üzerindeki metod:
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)
Kriterlere Göre Sunucudan E-postaları Filtrele
Aspose.Email Pop3Client class, şunları sağlar list_messages() metod, bir posta kutusundaki tüm mesajları alır. Sadece belirli bir koşula uyan mesajları almak için aşırı yüklenmiş olanı kullanın list_messages(query) metod, alır MailQuery argüman olarak. MailQuery sınıfı, sorgu koşullarını belirlemek için çeşitli özellikler sağlar; örneğin tarih, konu, gönderici, alıcı vb.
Arama ifadesini oluşturmak için şu öğeyi kullanın: MailQueryBuilder sınıfı. Önce tüm gerekli koşul ve kısıtlamaları tanımlayın, ardından MailQuery nesnesini, oluşturulan sorgu ile doldurun. MailQueryBuilder. Pop3Client, bu MailQuery nesnesini kullanarak sunucudan filtrelenmiş bilgileri alır.
Aşağıdaki kod örneği, konu, iç tarih, gönderici ve alıcı gibi çeşitli kriterlere göre Gmail hesabından e-postaları nasıl filtreleyeceğinizi ve alacağınızı gösterir. Ayrıca büyük‑küçük harf duyarlı filtrelemeyi gösterir ve karmaşık sorguları verimli bir şekilde nasıl oluşturacağınızı anlatır.
- Gmail POP3 sunucusuna bağlanmak için şu öğeyi kullanın: Pop3Client belirtilen sunucu adresi, port, kullanıcı adı ve şifre ile sınıf. Güvenlik seçenekleri, güvenli bağlantı için AUTO olarak ayarlanmıştır.
- Şunun bir örneğini oluştur MailQueryBuilder e-postaları filtrelemek için arama kriterlerini oluşturmak amacıyla.
- Konu ile Filtreleme:
- Konu satırında "Newsletter" içeren e-postalar bir filtre koşulu olarak belirtilir.
- İç Tarih ile Filtreleme:
- Bugün alınan e-postalar için bir filtre ayarlanır.
- Son bir hafta içinde alınan e-postaları getirerek ek bir filtre eklenir.
- Gönderici ile Filtreleme:
- Filtreler, belirli bir e-posta adresinden (saqib.razzaq@127.0.0.1) gelen e-postaları ve belirli bir alan adından (SpecificHost.com) gelen e-postaları dahil etmek için uygulanır.
- Alıcı ile Filtreleme:
- Belirli bir alıcıya gönderilen e-postaları bulmak için bir filtre belirtilir.
- Sorguları birleştir OR operatörünü kullanarak, belirli bir konuya uyan veya belirli bir adresten gönderilen e-postaları arayın.
- Büyük‑küçük Harf Duyarlı Filtreleme:
- "Newsletter" içeren konu için büyük‑küçük harf duyarlı bir filtre belirtilmiştir (True parametresiyle gösterilir).
- Mesajları Listeleme:
- list_messages() metodu, oluşturulan sorgu ile çağrılarak posta kutusundan filtrelenmiş mesajları alır.
- Son olarak, filtrelenmiş mesajların sayısını yazdırın.
Tarihe Göre E-postaları Filtrele
Teslim tarihine göre mesajları getirmek için, şunu kullanın internal_date aşağıdaki kod örneğinde gösterildiği gibi özellik:
import aspose.email as ae
from datetime import datetime
builder = ae.tools.search.MailQueryBuilder()
builder.internal_date.on(datetime.now())
Tarih Aralığına Göre E-postaları Filtrele
Tarih aralığındaki mesajları getirmek için, aynı internal_date aşağıdaki kod örneğinde gösterildiği gibi tarih aralığını belirten özellik:
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))
Gönderene Göre E-postaları Filtrele
Belirli bir gönderenten mesajları getirmek için, şunu kullanın from_address aşağıdaki kod örneğinde gösterildiği gibi özellik:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("saqib.razzaq@127.0.0.1")
Alana Göre E-postaları Filtrele
Belirli bir alandan mesajları getirmek için, şunu kullanın from_address aşağıdaki kod örneğinde gösterildiği gibi özellik:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("SpecificHost.com")
Alıcıya Göre E-postaları Filtrele
Belirli bir alıcıya mesajları getirmek için, şunu kullanın to aşağıdaki kod örneğinde gösterildiği gibi özellik:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.to.contains("recipient")
Karmaşık Arama Sorguları Oluşturun
Bazen birden fazla sorguyu karşılamak gerekir. Aspose.Email, sorguları birkaç ifadede birleştirmenizi sağlar. Oluşturun bir MailQueryBuilder nesneyi ve özelliklerini kullanarak belirli sorgular oluşturun.
Sorguları AND ile Birleştir
Aşağıdaki kod snippet’i, sorguları AND (VE) operatörüyle nasıl birleştireceğinizi gösterir:
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")
Sorguları OR ile Birleştir
Aşağıdaki kod snippet’i, sorguları OR operatörüyle nasıl birleştireceğinizi gösterir:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.either(builder.subject.contains("test"), builder.from_address.contains("noreply@host.com"))
Büyük‑küçük Harf Duyarlı Filtreler Uygula
API ayrıca, posta kutusundaki e-postaları büyük‑küçük harf duyarlı bir kritere göre filtreleme yeteneği sunar. Aşağıdaki metodlar, StringComparisonField sınıfı, büyük‑küçük harf duyarlı bayrakları belirterek e-posta arama yeteneği sağlar:
Metot Aspose.Email.StringComparisonField.contains(value, ignore_case) Metot Aspose.Email.StringComparisonField.equals(value, ignore_case) Metot Aspose.Email.StringComparisonField.not_contains(value, ignore_case) Metot Aspose.Email.StringComparisonField.not_equals(value, ignore_case)
Aşağıdaki kod snippet’i, bu yeteneği projenize nasıl uygulayacağınızı gösterir:
import aspose.email as ae
builder = ae.tools.search.MailQueryBuilder()
builder.from_address.contains("noreply@host.com", True)