תכונות ופונקציונליות
תכונות ופונקציונליות
דף זה מכסה כל תכונה מרכזית של 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 ברמת נמוכה |