תכונות ופונקציונליות

תכונות ופונקציונליות

תכונות ופונקציונליות

דף זה מכסה כל תכונה מרכזית של aspose-email-foss 26.3 עם דוגמאות Python עובדות.


קריאת קבצי MSG

טען קובץ MSG וגישה למאפייניו המרכזיים:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.from_file("message.msg")

print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")

יצירת קבצי MSG

צור הודעה חדשה מאפס:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

הגדר נושא וגוף להודעה קיימת:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

נמענים

הוסף נמענים עם שמות תצוגה וסוגים:

from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC

msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")

קבצים מצורפים

הוסף קבצים מצורפים בינריים:

with open("report.pdf", "rb") as f:
    data = f.read()

msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")

הטמע הודעת MSG כקובץ מצורף מקונן:

inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")

מאפייני MAPI

קרא וכתוב מאפייני MAPI לפי מזהה מאפיין:

from aspose.email_foss.msg import PropertyId

# Read a property
subject = msg.get_property(PropertyId.SUBJECT)

# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")

עבור על כל המאפיינים:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

המרת דוא"ל

המרה בין פורמטים MSG (MAPI) ו‑email (RFC 5322):

# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])

# MSG to EmailMessage object
email_msg = msg.to_email_message()

# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")

פעולות ברמת נמוכה של CFB

קריאת מבנה מכולת CFB ישירות:

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")

for entry in reader.iter_storages():
    print(f"Storage: {entry}")

for entry in reader.iter_streams():
    print(f"Stream: {entry}")

reader.close()

כתיבת מסמכי CFB:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

טיפים ושיטות עבודה מומלצות

  • תמיד קראו ל‑ msg.close() או השתמשו במנהל הקשר כאשר סיימתם לקרוא כדי לשחרר את ידיות הקבצים
  • השתמשו ב‑ msg.validation_issues כדי לבדוק בעיות ציות לפורמט MSG
  • ה‑ strict פרמטר ב‑ MapiMessage.from_file() שולט בסובלנות לשגיאות — הגדר ל‑ False לניתוח רפוי
  • כל נתוני הקבצים המצורפים נטענים לזיכרון במהלך from_file() — השתמשו ב‑ att.data כדי לגשת לבייטים ישירות; iter_attachments_info() הוא איטרטור נוח על רשימת הקבצים המצורפים שכבר מולאה
  • השתמשו ב‑ to_email_string() להצגת טקסט מהירה ללא בניית אובייקט email מלא

בעיות נפוצות

בעיהסיבהתיקון
CFBError בזמן טעינהקובץ CFB/MSG אינו תקףודא שהקובץ הוא MSG של Outlook אמיתי
גוף ריק לאחר הטעינההגוף נשמר ב-HTML בלבדבדוק msg.body_html במקום msg.body
נמענים חסריםל‑MSG אין אחסוני נמעניםנמענים הם אופציונליים בפורמט MSG; בדוק iter_attachments_info()

FAQ

אילו גרסאות של פורמט MSG נתמכות?

הספרייה קוראת וכותבת קבצי MSG בפורמט CFB גרסאות v3 ו‑v4, תואם ל‑Microsoft Outlook.

האם ניתן לקרוא קבצי EML?

לא ישירות. הספרייה מטפלת בפורמט MSG. השתמש MapiMessage.from_email_message() להמרה מ‑RFC 5322 EmailMessage אובייקטים.

האם יש תמיכה בבטיחות תהליכים (thread‑safety)?

כל MapiMessage ו CFBReader המופע הוא עצמאי. גישה מקבילה למופעים נפרדים משורות שונות היא בטוחה.


סיכום תיעוד API

מחלקה / מתודהתיאור
MapiMessageייצוג הודעת MSG ברמה גבוהה
MapiMessage.from_file()טען קובץ MSG
MapiMessage.create()צור הודעת MSG חדשה
MapiMessage.save()שמור לקובץ MSG
MapiMessage.to_email_message()המר ל‑EmailMessage (RFC 5322)
MapiMessage.from_email_message()המר מ‑EmailMessage ל‑MSG
MapiMessage.add_recipient()הוסף נמען
MapiMessage.add_attachment()הוסף קובץ מצורף בינארי
MapiAttachmentקובץ מצורף בהודעה
MapiRecipientנמען בהודעה
MapiPropertyרשומת מאפיין MAPI
CFBReaderקורא מכולת CFB ברמת נמוכה
CFBWriterכותב מכולת CFB ברמת נמוכה
MsgReaderקורא מבנה MSG ברמת נמוכה
 עברית