הכניסה

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-foss
from 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.


להתחיל

משאבים קשורים