Εισαγωγή

Aspose.Email FOSS for Python is now available on PyPI: a free, MIT-licensed library for creating, reading, and converting Outlook .msg αρχεία εξ ολοκλήρου σε Python, χωρίς εξάρτηση από το Microsoft Office ή οποιαδήποτε εγγενή επέκταση. Εγκαταστήστε το με pip install aspose-email-foss>=26.3 και ξεκινήστε αμέσως να εργάζεστε με τα containers MSG και CFB.

Η βιβλιοθήκη στοχεύει στο Python 3.10 και νεότερες εκδόσεις. Υλοποιεί τη μορφή Compound File Binary (CFB) και τη μορφή μηνύματος MSG από το μηδέν, παρέχοντάς σας καθοριστικό έλεγχο πάνω στο πώς τα email μηνύματα σειριοποιούνται και διαβάζονται. Επειδή η υλοποίηση είναι καθαρό Python, εκτελείται με τον ίδιο τρόπο σε Windows, macOS, Linux και σε περιβάλλοντα με containers.

Aspose.Email FOSS is designed for developers building email processing pipelines, compliance archival tools, forensic analysis workflows, or any application that needs to create or inspect Outlook-compatible message files without a running Exchange or Outlook installation.


Κύρια Χαρακτηριστικά

Δημιουργία αρχείων MSG

Δημιουργήστε αρχεία συμβατά με το Outlook .msg από το μηδέν χρησιμοποιώντας MapiMessage.create(). Ορίστε τις τυπικές ιδιότητες MAPI όπως θέμα, αποστολέας, χρόνο παράδοσης και πεδία εμφάνισης μέσω του PropertyId enum. Προσθέστε παραλήπτες με add_recipient() και συνημμένα αρχείων με add_attachment(), στη συνέχεια αποθηκεύστε το αποτέλεσμα στο δίσκο.

from aspose.email_foss import msg

message = msg.MapiMessage.create(
    "Quarterly status update and rollout plan",
    "Hello team,\n\nPlease find the latest rollout summary attached.\n\nRegards,\nEngineering",
)

message.set_property(msg.PropertyId.SENDER_NAME, "Build Agent")
message.set_property(msg.PropertyId.SENDER_EMAIL_ADDRESS, "build.agent@example.com")
message.set_property(msg.PropertyId.INTERNET_MESSAGE_ID, "<example-001@example.com>")

message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_recipient("bob@example.com", display_name="Bob Example")
message.add_recipient(
    "carol@example.com",
    display_name="Carol Example",
    recipient_type=msg.RECIPIENT_TYPE_CC,
)

message.add_attachment("hello.txt", b"sample attachment\n", mime_type="text/plain")
message.save("example-message.msg")

Ανάγνωση και μετατροπή MSG σε EML

Φορτώστε ένα υπάρχον .msg αρχείο με MapiMessage.from_file() και μετατρέψτε το σε τυπικό Python EmailMessage αντικείμενο μέσω to_email_message(). Από εκεί, σειριοποιήστε σε bytes EML για αποθήκευση ή προώθηση μέσω SMTP.

from aspose.email_foss import msg

with msg.MapiMessage.from_file("example-message.msg") as loaded:
    email_message = loaded.to_email_message()
    eml_bytes = email_message.as_bytes()

with open("example-message.eml", "wb") as f:
    f.write(eml_bytes)

Επιθεώρηση εσωτερικών στοιχείων MSG

Χρησιμοποιήστε MsgReader και το υποκείμενο του CFBReader για να εξετάσετε τη δυαδική δομή ενός αρχείου MSG. Πρόσβαση στα μεταδεδομένα CFB (έκδοση, μέγεθος τομέα, αριθμός καταχωρήσεων καταλόγου) και επανάληψη πάνω στις καταχωρήσεις ιδιοτήτων MAPI σε δυαδικό επίπεδο.

from aspose.email_foss import msg

reader = msg.MsgReader.from_file("example-message.msg")
cfb = reader.cfb_reader

print(f"CFB major_version={cfb.major_version}")
print(f"sector_size={cfb.sector_size}")
print(f"directory_entries={cfb.directory_entry_count}")

for entry in reader.iter_top_level_fixed_length_properties():
    tag = entry.property_tag
    print(f"tag=0x{tag:08X} flags=0x{entry.flags:08X} value={entry.value.hex()}")

reader.close()

Πρόσβαση CFB χαμηλού επιπέδου

Διαβάστε και περιηγηθείτε σε οποιοδήποτε δοχείο Compound File Binary χρησιμοποιώντας CFBReader. Καταγράψτε αποθηκευτικούς χώρους και ροές, επιλύστε διαδρομές με βάση το όνομα και εξάγετε ακατέργαστα δεδομένα ροής για προσαρμοσμένη επεξεργασία.

from aspose.email_foss.cfb import CFBReader

reader = CFBReader.from_file("example-message.msg")

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

for entry in reader.iter_streams():
    data = reader.get_stream_data(entry.stream_id)
    print(f"Stream: {entry.name} size={len(data)}")

reader.close()

Γρήγορη Εκκίνηση

Εγκαταστήστε τη βιβλιοθήκη και δημιουργήστε το πρώτο σας αρχείο MSG σε λιγότερο από δέκα γραμμές:

pip install aspose-email-foss>=26.3
from aspose.email_foss import msg

message = msg.MapiMessage.create("Hello from Python", "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")

with msg.MapiMessage.from_file("hello.msg") as loaded:
    eml = loaded.to_email_message()
    print(eml["Subject"])

Υποστηριζόμενες Μορφές

ΜορφήΕισαγωγήΕξαγωγή
MSGΝαιΝαι
CFBΝαιΝαι

Ανοιχτός Κώδικας & Άδεια

Aspose.Email FOSS for Python is released under the MIT License. Μπορείτε να το χρησιμοποιήσετε σε προσωπικά, εσωτερικά και εμπορικά έργα χωρίς περιορισμούς. Ο κώδικας πηγής είναι διαθέσιμος στο GitHub.


Ξεκινώντας