הכניסה
Aspose.Email FOSS for Python is a free, MIT-licensed library for creating, reading, and להמיר את קבצי ההודעה תואמים ל- Outlook ל Python טהור. aspose-email-foss, הוא עובד על Windows, macOS, לינוקס, Docker, וסביבות ללא שרתים ללא מיקרוסופט או זמן עבודה בעלות.
הספרייה מכסה שני תחומים עיקריים: שכבה MAPI ברמה גבוהה (MapiMessage• לעבוד עם נושאים, גופים, קבלנים ותוספים של הודעות; וארכיון ברמה נמוכה מדרגות (MsgReader, CFBReader, CFBStorage, CFBStream• המציגה את המרכיב הירוק קובץ בינארי מחסנים אשר מסייעים כל אחד .msg קובץ .
מאמר זה עובר את התכונות המפתח שנשלחו בגרסה 26.3, המבוסס על פני ה- API המאושר.
תכונות מרכזיות
יצירת הודעות ברמה גבוהה עם MapiMessage
MapiMessage הוא נקודת הכניסה העיקרית ליצירת הודעות תואמות ל- Outlook מ צ’אנס - Call MapiMessage.create() עם נושא וגוף, להוסיף קבלנים ו תוספת, ולאחר מכן ישירות לשמור על .msg קובץ .
from aspose.email_foss import msg
message = msg.MapiMessage.create(
"Quarterly status update",
"Hello team,\n\nPlease review the attached summary.\n\nRegards,\nEngineering",
)
message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient(
"carol@example.com",
display_name="Carol Example",
recipient_type=msg.RECIPIENT_TYPE_CC,
)
message.add_attachment("report.txt", b"Summary content here.\n", mime_type="text/plain")
message.save("output.msg")
קריאה ובדיקה של קבצי MSG
MsgReader מספק גישה מבנית למערכת קיימת. .msg קובץ ללא טעינה מלאה בתוך A MapiMessage.הוא מציג כניסות נכסים ברמה הגבוהה ביותר, אחסון קבלנים, ו תוספת אחסון בנפרד, מה שהופך את זה מעשי עבור בדיקה קובץ גדול ו צינורות רישום.
from aspose.email_foss import msg
with msg.MsgReader.from_file("output.msg") as reader:
header = reader.top_level_header
print(f"Recipients : {header.recipient_count}")
print(f"Attachments: {header.attachment_count}")
for entry in reader.iter_recipient_storages():
_, props = reader.parse_subobject_property_stream(entry.stream_id)
print(f" Recipient storage {entry.name}: {len(props)} property entries")
MSG Round-Trip: להעלות, לשנות, לחסוך
בגלל MapiMessage תמיכה from_file() על מנת להעלות ול save() כתיבה מלאה, מלאת מחזור קריאה-שינוי-כתבה דורש רק כמה שורות.תכונות נקראות, תבניות טופס, ו ניהול רצועות Unicode זמין באמצעות set_property, PropertyId, ו MapiNamedProperty.
from aspose.email_foss import msg
with msg.MapiMessage.from_file("original.msg") as message:
message.set_property(msg.PropertyId.SUBJECT, "Updated Subject")
message.save("updated.msg")
EML / RFC 5322 הפוך
MapiMessage.to_email_message() להפוך MSG משולב ל- Python סטנדרטי email.message.EmailMessage רכישה של מוצר, המאפשרת ייצוא ל- RFC 5322 .eml שימוש בפורמט המהדורה השנייה של התרחיש (MapiMessage.from_email_message()• בניינים א MapiMessage מתוך A EmailMessage.
from pathlib import Path
from aspose.email_foss import msg
with msg.MapiMessage.from_file("message.msg") as message:
eml_bytes = message.to_email_bytes()
Path("message.eml").write_bytes(eml_bytes)
# Reverse: load EML into MapiMessage
import email
raw_eml = Path("message.eml").read_bytes()
email_obj = email.message_from_bytes(raw_eml)
mapi = msg.MapiMessage.from_email_message(email_obj)
mapi.save("from_eml.msg")
CFB מסעדות
כל אחד .msg קובץ הוא מחסן של קבצים בינאריים (CFB). CFBReader מספקת גישה רק לקרוא לעץ התיעוד, לתת לך לרשום אחסון וזרמים, ללכת על הירוקרגיה, וקיצוץ באט זרם ירוק — ללא התבססות על MsgReader.
from aspose.email_foss.cfb import CFBReader
with CFBReader.from_file("message.msg") as reader:
print(f"CFB version : {reader.major_version}")
print(f"Sector size : {reader.sector_size}")
for depth, entry in reader.iter_tree():
indent = " " * depth
size = entry.stream_size if entry.is_stream() else "-"
print(f"{indent}{entry.name} [size={size}]")
ניהול מעורבות
הוספת תוספים באמצעות MapiMessage.add_attachment() (למידע בינארי) או MapiMessage.add_embedded_message_attachment() (למשל, יש להקפיד על שני שיטות) לקבל שם קובץ, באטים ירוקים, ו- MIME אופציונלי.
from aspose.email_foss import msg
message = msg.MapiMessage.create("Attachment demo", "See files below.")
message.add_attachment("data.csv", b"id,value\n1,100\n", mime_type="text/csv")
inner = msg.MapiMessage.create("Nested message", "This is embedded.")
message.add_embedded_message_attachment(inner, "nested.msg")
message.save("with_attachments.msg")
מהיר התחלה
pip install aspose-email-fossfrom aspose.email_foss import msg
# Create and save a minimal MSG
message = msg.MapiMessage.create("Hello World", "This is a test message.")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "sender@example.com")
message.add_recipient("recipient@example.com", display_name="Recipient")
message.save("hello.msg")
# Load it back and convert to EML
with msg.MapiMessage.from_file("hello.msg") as loaded:
print(loaded.get_property_value(msg.PropertyId.SUBJECT))
eml = loaded.to_email_bytes()
open("hello.eml", "wb").write(eml)
פורמט תומך
| פורמט | הרחבה | קראו | כתוב |
|---|---|---|---|
| קובץ בינארי | .cfb | ✓ | ✓ |
| Outlook הודעה | .msg | ✓ | ✓ |
| EML / RFC 5322 | .eml | ✓ | ✓ |
קוד פתוח & רישיון
Aspose.Email FOSS for Python is released under the MIT License. The source repository is זמינים ב github.com/תגיות דואר אלקטרוני ועם החבילה פורסמה ב-PyPI כ aspose-email-foss.שימוש מסחרי, שינויים ו כל ההפצה מותרת על פי תנאי MIT.