Χαρακτηριστικά και Λειτουργίες

Χαρακτηριστικά και Λειτουργίες

Χαρακτηριστικά και Λειτουργίες

Αυτή η σελίδα καλύπτει κάθε κύρια λειτουργία του 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
 Ελληνικά