הכניסה
הפצה של הודעות דואר אלקטרוני בתכנית היא דרישה נפוצה עבור העברת נתונים, זרימת עבודה ארכיבואלית, וכלים תאימות. Outlook MSG קבצים משתמשים בפורמט הקונטיננטור בינארי (CFB) עם תכונות MAPI כדי לקודד את הנתונים המוטאדיים של ההודעה, תוכן הגוף, הנמענים, והרשומות. לעבוד עם פורמט זה בפייטון דורש באופן מסורתי בין ספרייה מסחרית או ניתוח ביני ברמה נמוכה.
The aspose-email-foss החבילה מספקת ספרייה טהורה Python, MIT רישיון לקרוא, ליצור ולהמיר קבצי Outlook MSG. MapiMessage API למשימות משותפות לצד רמה נמוכה יותר MsgReader הספרייה דורשת Python 3.10 או מאוחר יותר ואין לה תלויות מקומיות.
בין אם אתה צריך לחלץ את קו הנושא ואת הגוף ממספר של הודעות מאורגנות, לרשום תוספים עבור אינדקס או להפוך קבצים MSG לתבנית סטנדרטית RFC 5322 , הספרייה הזו פועלת על הפריסה הבינארית כך שאתה יכול להתמקד בהגיון היישום שלך.
מה כולל
לקרוא קבצים MSG עם MapiMessage
The MapiMessage שיעור הוא נקודת הכניסה העיקרית עבור פריסה של קבצי MSG Outlook. פתח קובץ, גישה לתכונות שלו, וסגור אותו נקי עם מנהל מקורות.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("meeting-invite.msg") as message:
print(f"Subject: {message.subject}")
print(f"Body: {message.body[:200]}")
print(f"HTML body available: {message.body_html is not None}")
The from_file השיטה קוראת את המכולת CFB, פולס את זרימת הנכסים של MAPI, ומציבה את התכונות הנבואות. subject, body, ו body_html נכסים להחזיר קווים מעודכנים ישירות.
מיצוי מתכונים
כל קובץ MSG מאוחסן את המידע של הנמען במאגרי MAPI מיוחדים. MapiMessage.recipients רשימת הנכסים מחזירה את רשימה של MapiRecipient אובייקטים עם שדות טופס עבור שם הצג, כתובת דואר אלקטרוני וסוג המועמד (TO, CC או BCC).
from aspose.email_foss import msg
with msg.MapiMessage.from_file("team-update.msg") as message:
for recipient in message.recipients:
print(
f"{recipient.display_name} <{recipient.email_address}> "
f"type={recipient.recipient_type}"
)
עבודה עם תוספים
The iter_attachments_info שיטת הישגים MapiAttachment אובייקטים המספקים את שם הקובץ, ביטים ירוקים, סוג MIME, ואת התוכן האופציונלי-ID עבור תמונות אינלין.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("report.msg") as message:
for att in message.iter_attachments_info():
print(f" {att.filename} ({att.mime_type}, {len(att.data)} bytes)")
if att.content_id:
print(f" inline content-id: {att.content_id}")
גישה לרכוש MAPI
עבור סצנות הדורשות ערכים נכסים ספציפיים של MAPI מעבר לאתרי הנוחות, להשתמש get_property_value עם A PropertyId זה מספק גישה ישירה לכל נכס המאוחסן בקובץ MSG.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("notification.msg") as message:
sender = message.get_property_value(msg.PropertyId.SENDER_NAME)
email = message.get_property_value(msg.PropertyId.SENDER_EMAIL_ADDRESS)
delivery = message.get_property_value(msg.PropertyId.MESSAGE_DELIVERY_TIME)
print(f"From: {sender} <{email}>")
print(f"Delivered: {delivery}")
כל רכוש מוחלף
כאשר אתה צריך לבדוק כל נכס בהודעה (לדיבוג, ביקורת או הגירה), iter_properties שיטת הישגים MapiProperty אובייקטים עם תווית מלאה ומידע ערך.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("sample.msg") as message:
for prop in message.iter_properties():
print(
f"tag=0x{prop.property_tag:08X} "
f"type=0x{prop.property_type:04X} "
f"value={prop.value!r}"
)
להמיר MSG ל- EML
The to_email_message שיטה להפוך MSG parsed ל- Python סטנדרטי email.message.EmailMessage משם תוכלו לסריאליז את ההודעה לתבנית RFC 5322 (EML) באמצעות הספרייה הסטנדרטית.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("archive.msg") as message:
email_message = message.to_email_message()
eml_bytes = email_message.as_bytes()
with open("archive.eml", "wb") as f:
f.write(eml_bytes)
הערה כי EML output משתמש Python מובנה email הספרייה פועלת על ה- MSG-to-MAPI- to-EmailMessage; הספריית סטנדרטית פונה בפורמט RFC 5322 .
מהיר התחלה
התקנת החבילה מ-PyPI ולשבור את קובץ MSG הראשון שלך לתוך פחות מ 20 שורות:
# Install: pip install aspose-email-foss>=26.3
from aspose.email_foss import msg
# Create a new message
message = msg.MapiMessage.create(
"Project status update",
"Hello team,\n\nPlease review the attached report.\n\nRegards",
)
message.add_recipient("alice@example.com", display_name="Alice")
message.add_attachment("notes.txt", b"meeting notes\n", mime_type="text/plain")
message.save("status-update.msg")
# Read it back and extract data
with msg.MapiMessage.from_file("status-update.msg") as loaded:
print(f"Subject: {loaded.subject}")
print(f"Recipients: {len(loaded.recipients)}")
for att in loaded.iter_attachments_info():
print(f"Attachment: {att.filename} ({len(att.data)} bytes)")
פורמט תומך
| פורמט | הרחבה | קראו | כתוב |
|---|---|---|---|
| Outlook MSG | .msg | כן | כן |
| קובץ בינארי | .cfb | כן | כן |
| EML (באמצעות ההמרה) | .eml | כן (באמצעות from_email_message) | כן (באמצעות to_email_message) |
תמיכה EML עובדת באמצעות ההמרה: MapiMessage.from_email_message() ייבוא מהפיטון email.message.EmailMessage אובייקט, ו to_email_message() לא מסופקים קבצי EML ישירים – הספרייה הסטנדרטית פועלת בפורמט הקשת EM L.
קוד פתוח & רישיון
Aspose.Email FOSS for Python is released under the MIT license. You are free to use, modify, and distribute the library in both commercial and non-commercial projects. The full source code is available on GitHub.
הספרייה היא יישום Python טהור ללא הרחבות או תלויות מקומיות.זה פועל על כל פלטפורמה תומכת Python 3.10 או מאוחר יותר.
להתחיל
לחקור משאבים נוספים לעבוד עם Aspose.Email FOSS עבור Python:
- מדריך מפתחים - תיעוד מלא עם טורקיות ו- API walkthroughs
- בסיס ידע איך לכתוב מאמרים ושאלות נפוצות
- API רמז – שיעור מלא ושיטה של התייחסות