Χαρακτηριστικά και Λειτουργίες
Χαρακτηριστικά και Λειτουργίες
Αυτή η σελίδα καλύπτει κάθε κύρια λειτουργία του aspose-email-foss 26.3 με λειτουργικά παραδείγματα Python.
Ανάγνωση αρχείων MSG
Φορτώστε ένα αρχείο MSG και αποκτήστε πρόσβαση στις βασικές του ιδιότητες:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.from_file("message.msg")
print(f"Subject: {msg.subject}")
print(f"Body: {msg.body}")
print(f"HTML Body: {msg.body_html}")
print(f"Message Class: {msg.message_class}")Δημιουργία αρχείων MSG
Δημιουργήστε ένα νέο μήνυμα από το μηδέν:
from aspose.email_foss.msg import MapiMessage
msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")Ορίστε θέμα και σώμα σε ένα υπάρχον μήνυμα:
msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")Παραλήπτες
Προσθέστε παραλήπτες με εμφανιζόμενα ονόματα και τύπους:
from aspose.email_foss.msg import MapiMessage, RECIPIENT_TYPE_CC
msg = MapiMessage.create("Hello", "Message body")
msg.add_recipient("alice@example.com", display_name="Alice Smith")
msg.add_recipient("bob@example.com", display_name="Bob Jones", recipient_type=RECIPIENT_TYPE_CC)
msg.save("with_recipients.msg")Συνημμένα
Προσθέστε δυαδικά συνημμένα αρχεία:
with open("report.pdf", "rb") as f:
data = f.read()
msg.add_attachment("report.pdf", data, mime_type="application/pdf")
msg.save("with_attachment.msg")Ενσωματώστε ένα μήνυμα MSG ως ένθετο συνημμένο:
inner = MapiMessage.create("Inner Subject", "Inner body")
msg.add_embedded_message_attachment(inner, filename="embedded.msg", mime_type="application/vnd.ms-outlook")
msg.save("with_embedded.msg")Ιδιότητες MAPI
Ανάγνωση και εγγραφή ιδιοτήτων MAPI με βάση το αναγνωριστικό ιδιότητας:
from aspose.email_foss.msg import PropertyId
# Read a property
subject = msg.get_property(PropertyId.SUBJECT)
# Set a property
msg.set_property(PropertyId.SUBJECT, "New Subject")Επανάληψη σε όλες τις ιδιότητες:
for prop in msg.iter_properties():
print(f"Tag: {prop.property_tag:#010x}")Μετατροπή Email
Μετατροπή μεταξύ μορφών MSG (MAPI) και email (RFC 5322):
# MSG to email string
email_str = msg.to_email_string()
print(email_str[:500])
# MSG to EmailMessage object
email_msg = msg.to_email_message()
# EmailMessage back to MapiMessage
msg2 = MapiMessage.from_email_message(email_msg)
msg2.save("roundtrip.msg")Λειτουργίες Χαμηλού Επιπέδου CFB
Ανάγνωση της δομής του κοντέινερ CFB απευθείας:
from aspose.email_foss.cfb import CFBReader
reader = CFBReader.from_file("message.msg")
print(f"File size: {reader.file_size} bytes")
print(f"Sectors: {reader.fat_sector_count}")
print(f"Entries: {reader.directory_entry_count}")
for entry in reader.iter_storages():
print(f"Storage: {entry}")
for entry in reader.iter_streams():
print(f"Stream: {entry}")
reader.close()Γραφή εγγράφων CFB:
from aspose.email_foss.msg import MsgWriter
data = msg.to_bytes()
with open("output.msg", "wb") as f:
f.write(data)Συμβουλές και Καλές Πρακτικές
- Πάντα καλέστε
msg.close()ή χρησιμοποιήστε έναν διαχειριστή περιβάλλοντος όταν ολοκληρώσετε την ανάγνωση για να απελευθερώσετε τους χειριστές αρχείων - Χρησιμοποιήστε
msg.validation_issuesγια να ελέγξετε τυχόν προβλήματα συμμόρφωσης με τη μορφή MSG - Το
strictπαράμετρος στοMapiMessage.from_file()ελέγχει την ανοχή σφαλμάτων — ορίστε σεFalseγια χαλαρή ανάλυση - Όλα τα δεδομένα συνημμένων φορτώνονται στη μνήμη κατά τη διάρκεια
from_file()— χρησιμοποιήστεatt.dataγια άμεση πρόσβαση στα byte;iter_attachments_info()είναι ένας βολικός επαναλήπτης πάνω στη λίστα συνημμένων που έχει ήδη γεμίσει - Χρησιμοποιήστε
to_email_string()για γρήγορες προεπισκοπήσεις κειμένου χωρίς πλήρη κατασκευή αντικειμένου email
Κοινά Προβλήματα
| Πρόβλημα | Αιτία | Διόρθωση |
|---|---|---|
CFBError κατά τη φόρτωση | Μη έγκυρο αρχείο CFB/MSG | Επαληθεύστε ότι το αρχείο είναι πραγματικό Outlook MSG |
| Κενό σώμα μετά τη φόρτωση | Το σώμα αποθηκεύεται μόνο σε HTML | Έλεγχος msg.body_html αντί για msg.body |
| Λείπουν παραλήπτες | Το MSG δεν έχει αποθηκευτικά στοιχεία παραληπτών | Οι παραλήπτες είναι προαιρετικοί στη μορφή MSG· ελέγξτε iter_attachments_info() |
FAQ
Ποιες εκδόσεις μορφής MSG υποστηρίζονται;?
Η βιβλιοθήκη διαβάζει και γράφει αρχεία MSG σε μορφή CFB v3 και v4, συμβατή με το Microsoft Outlook.
Μπορώ να διαβάσω αρχεία EML;?
Δεν είναι άμεσα. Η βιβλιοθήκη διαχειρίζεται τη μορφή MSG. Χρησιμοποιήστε MapiMessage.from_email_message() για μετατροπή από RFC 5322 EmailMessage αντικείμενα.
Υποστηρίζεται η ασφάλεια νήματος;?
Κάθε MapiMessage και CFBReader Η instance είναι ανεξάρτητη. Η ταυτόχρονη πρόσβαση σε ξεχωριστές instances από διαφορετικά νήματα είναι ασφαλής.
Περίληψη Αναφοράς API
| Κλάση / Μέθοδος | Περιγραφή |
|---|---|
MapiMessage | Αναπαράσταση μηνύματος MSG υψηλού επιπέδου |
MapiMessage.from_file() | Φόρτωση αρχείου MSG |
MapiMessage.create() | Δημιουργήστε ένα νέο μήνυμα MSG |
MapiMessage.save() | Αποθήκευση σε αρχείο MSG |
MapiMessage.to_email_message() | Μετατροπή σε EmailMessage (RFC 5322) |
MapiMessage.from_email_message() | Μετατροπή από EmailMessage σε MSG |
MapiMessage.add_recipient() | Προσθήκη παραλήπτη |
MapiMessage.add_attachment() | Προσθήκη δυαδικού συνημμένου |
MapiAttachment | Συνημμένο σε μήνυμα |
MapiRecipient | Παραλήπτης σε μήνυμα |
MapiProperty | Καταχώρηση ιδιότητας MAPI |
CFBReader | Αναγνώστης χαμηλού επιπέδου για κοντέινερ CFB |
CFBWriter | Συγγραφέας χαμηλού επιπέδου για κοντέινερ CFB |
MsgReader | Αναγνώστης χαμηλού επιπέδου για δομή MSG |