Εισαγωγή

Το να διανέμετε μηνύματα ηλεκτρονικού ταχυδρομείου προγραμματικά είναι μια κοινή απαίτηση για τη μετανάστευση δεδομένων, τις ροές εργασίας αρχείων και εργαλεία συμμόρφωσης. Τα αρχεία MSG του Outlook χρησιμοποιούν το μορφότυπο δοχείου Compound File Binary (CFB) με ιδιότητες MAPI για τον κωδικοποίηση των μεταδεδομένων μηνυμάτων, περιεχομένου σώματος, παραλήπτες και συνημμένα. Εργασία με αυτό το σχήμα στο Python έχει παραδοσιακά απαιτήσει είτε εμπορικές βιβλιοθήκες ή χαμηλού επιπέδου δυαδική χειραγώγηση.

Η aspose-email-foss Το πακέτο παρέχει μια καθαρή βιβλιοθήκη Python, MIT-licensed για την ανάγνωση, τη δημιουργία και μετατροπή των αρχείων MSG του Outlook. MapiMessage API για κοινές εργασίες μαζί με χαμηλότερα επίπεδα MsgReader Η βιβλιοθήκη απαιτεί Python 3.10 ή αργότερα και δεν έχει καμία εγχώρια εξάρτηση.

Είτε χρειάζεται να εξαγάγετε την γραμμή και το σώμα του αντικειμένου από ένα σύνολο αρχειοθετημένων μηνυμάτων, να καταγράψετε συνημμένα για τον δείκτη ή να μετατρέψουμε τα αρχεία MSG σε τυποποιημένο μορφότυπο RFC 5322 αυτή η βιβλιοθήκη χειρίζεται τη δυαδική παραχώρηση έτσι ώστε να μπορείτε να επικεντρωθεί στην λογική της εφαρμογής σας.


Τι περιλαμβάνεται

Διαβάστε τα αρχεία MSG με το MapiMessage

Η MapiMessage Η τάξη είναι το κύριο σημείο εισόδου για την παρσινγκ των αρχείων του Outlook MSG. Ανοίξτε ένα αρχείο, πρόσβαση στις ιδιότητές του και κλείστε το καθαρά με έναν διαχειριστή συνδέσμων.

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}")

Η 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}"
        )

Εργασία με τα αρθρώματα

Η iter_attachments_info Μέθοδος Αποδόσεων MapiAttachment αντικείμενα που παρέχουν το όνομα αρχείου, τα ριζικά byte, τον τύπο 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

Η to_email_message Η μέθοδος μετατρέπει ένα παράσιτο MSG σε μια τυποποιημένη 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 χρησιμοποιεί το ενσωματωμένο 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)")

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

ΤΕΧΝΗΕΠΙΤΡΟΦΗΔιαβάστεΓράψε
Ετικέτες MSG.msgΝΑΙΝΑΙ
Ετικέτες Binary File.cfbΝΑΙΝΑΙ
EML (με τη μετατροπή).emlΝαι (μεταξύ των from_email_message)Ναι (μεταξύ των to_email_message)

Η υποστήριξη EML λειτουργεί μέσω μετατροπής: MapiMessage.from_email_message() Εισαγωγές από Python 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:

Σχετικοί Πόροι