שליפת הודעות דוא״ל משרת POP3

שמור אימיילים לדיסק ללא ניתוח

להורדת הודעות אימייל משרת POP3 ללא ניתוח, ניתן להשתמש ב‑ save_message מתודה של Aspose.Email Pop3Client מחלקה. קטע הקוד הבא מדגים כיצד לשמור הודעה באמצעות מספר הסדרה שלה, במקרה זה מספר 1. ה‑ save_message מתודה משמרת את פורמט ה‑EML המקורי ללא ניתוח:

פרש הודעות לפני שמירה

ניתן לאחזר הודעת אימייל ספציפית באמצעות fetch_message שיטה של Pop3Client מחלקה, שמציינת את מספר הסדרה הרצוי לאובייקט ה‑client. קוד הדוגמה הבא מראה כיצד לאחזר הודעה מסוימת ולאחר מכן לשמור אותה תוך שימוש בנושא שלה כשם הקובץ על ידי קריאה ל‑ save מתודה על האובייקט 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)

סינון אימיילים מהשרת לפי קריטריון

ה‑Aspose.Email Pop3Client class מספקת את list_messages() מתודה אשר מקבלת את כל ההודעות מתיבת דואר. כדי לקבל רק הודעות שתואמות תנאי מסוים, השתמש ב- list_messages(query) מתודה אשר מקבלת MailQuery כארגומנט. ה- MailQuery המחלקה מספקת מגוון מאפיינים לציון תנאי השאילתה, כגון תאריך, נושא, שלוח, מקבל וכד'.

לבניית ביטוי החיפוש, השתמש ב‑ MailQueryBuilder מחלקה. ראשית, הגדר את כל התנאים והמגבלות הנדרשים, ולאחר מכן מלא את אובייקט MailQuery עם השאילתה שנוצרה על ידי MailQueryBuilder. Pop3Client משתמש באובייקט MailQuery זה כדי לאחזר מידע מסונן מהשרת.

דוגמת הקוד הבאה מציגה כיצד לסנן ולאחזר אימיילים מחשבון Gmail על בסיס קריטריונים שונים כולל נושא, תאריך פנימי, שולח ומקבל. היא גם מציגה סינון רגיש לאותיות גדולות/קטנות ומדגימה כיצד לבנות שאילתות מורכבות ביעילות.

  1. הקם חיבור לשרת Gmail POP3 באמצעות Pop3Client מחלקה עם כתובת השרת, הפורט, שם המשתמש והסיסמה שצוינו. אפשרויות האבטחה מוגדרות ל‑AUTO לחיבור מאובטח.
  2. צור מופע של MailQueryBuilder לבניית קריטריוני החיפוש לסינון אימיילים.
  3. סינון לפי נושא:
    • אימיילים המכילים "Newsletter" בכותרת נחשבים כקריטריון סינון.
  4. סינון לפי תאריך פנימי:
    • הוגדר מסנן לאימיילים שהתקבלו בתאריך הנוכחי.
    • התווסף מסנן נוסף כדי לאחזר אימיילים שהתקבלו במהלך השבוע האחרון.
  5. סינון לפי שולח:
    • מסננים חלים כדי לחפש אימיילים מכתובת מסוימת (saqib.razzaq@127.0.0.1) ולהכליל אימיילים מדומיין ספציפי (SpecificHost.com).
  6. סינון לפי מקבל:
    • הוגדר מסנן למציאת אימיילים שנשלחו למקבל ספציפי.
  7. שילוב שאילתות באמצעות אופרטור OR לחיפוש אימיילים שתואמים נושא נתון או נשלחים מכתובת ספציפית.
  8. סינון רגיש לאותיות גדולות/קטנות:
    • הוגדר מסנן רגיש לאותיות גדולות/קטנות עבור נושא המכיל "Newsletter" (מצוין בפרמטר True).
  9. רישום הודעות:
    • מתודת list_messages() נקראת עם השאילתה שנבנתה כדי לאחזר את ההודעות המסוננות מתיבת הדואר.
  10. לבסוף, הדפס את ספירת ההודעות המסוננות.

סינון הודעות לפי תאריך

כדי לקבל הודעות לפי תאריך משלוח, השתמש ב- internal_date מאפיין כפי שמוצג בדוגמת הקוד למטה:

import aspose.email as ae
from datetime import datetime

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

סינון הודעות לפי טווח תאריכים

כדי לקבל הודעות בתוך טווח תאריכים, השתמש באותו internal_date מאפיין המפרט טווח תאריכים כפי שמופיע בדוגמת הקוד למטה:

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

סינון הודעות לפי שולח

כדי לקבל הודעות משולח ספציפי, השתמש ב- from_address מאפיין כפי שמוצג בדוגמת הקוד למטה:

import aspose.email as ae

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

סינון הודעות לפי דומיין

כדי לקבל הודעות מדומיין ספציפי, השתמש ב- from_address מאפיין כפי שמוצג בדוגמת הקוד למטה:

import aspose.email as ae

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

סינון הודעות לפי נמען

כדי לקבל הודעות לנמען ספציפי, השתמש ב- to מאפיין כפי שמוצג בדוגמת הקוד למטה:

import aspose.email as ae

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

בנה שאילתות חיפוש מורכבות

לפעמים יש צורך לענות על יותר משאילתא אחת. Aspose.Email מאפשר לשלב שאילתות במספר הצהרות. צור MailQueryBuilder אובייקט ולהשתמש במאפייניו לבניית שאילתות ספציפיות.

שילוב שאילתות עם AND

קוד הקטע הבא מראה כיצד לשלב שאילתות עם אופרטור 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")

שילוב שאילתות עם OR

קוד הקטע הבא מראה כיצד לשלב שאילתות עם אופרטור OR:

import aspose.email as ae

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

החל סינונים רגישים לאותיות גדולות/קטנות

ה‑API גם מספק את היכולת לסנן אימיילים מתיבת הדואר לפי קריטריון רגיש לאותיות. המתודות הבאות של StringComparisonField מחלקה מספקת את היכולת לחפש אימיילים עם דגלים רגישים לאותיות גדולות/קטנות:

מתודה Aspose.Email.StringComparisonField.contains(value, ignore_case) מתודה Aspose.Email.StringComparisonField.equals(value, ignore_case) מתודה Aspose.Email.StringComparisonField.not_contains(value, ignore_case) מתודה Aspose.Email.StringComparisonField.not_equals(value, ignore_case)

קטע הקוד הבא מראה כיצד ליישם אפשרות זו בפרויקט שלך:

import aspose.email as ae

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