Merkmale und Funktionalität

Merkmale und Funktionalität

Diese Seite behandelt alle wichtigen Merkmale der Aspose-email-foss 26.3 mit funktionierenden Python-Beispielen.


MSG-Dateien lesen

Laden Sie eine MSG-Datei und greifen Sie auf ihre Kernfunktionen zu:

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

Erstellen von MSG-Dateien

Erstellen Sie eine neue Nachricht von Grund auf:

from aspose.email_foss.msg import MapiMessage

msg = MapiMessage.create("Meeting Notes", "Please find the notes attached.")
msg.save("new_message.msg")

Thema und Körper einer vorhandenen Nachricht festlegen:

msg.subject = "Updated Subject"
msg.body = "Updated body text"
msg.save("updated.msg")

Empfänger

Empfänger mit Anzeigennamen und -typen hinzufügen:

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

Anlagen

Binäre Dateieanhänge hinzufügen:

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

Einfügen einer MSG-Nachricht als eingebetteter Anhang:

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-Eigenschaften

MAPI-Eigenschaften nach Eigentumsnummer lesen und schreiben:

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

Iteration aller Eigenschaften:

for prop in msg.iter_properties():
    print(f"Tag: {prop.property_tag:#010x}")

E-Mail Umwandlung

Umwandlung zwischen MSG (MAPI) und E-Mail (RFC 5322) Formaten:

# 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-Aktionen auf niedriger Ebene

Die CFB-Containerstruktur direkt zu lesen:

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()

Schreiben Sie CFB-Dokumente:

from aspose.email_foss.msg import MsgWriter

data = msg.to_bytes()
with open("output.msg", "wb") as f:
    f.write(data)

Tipps und beste Praktiken

  • Immer anrufen . msg.close() oder verwenden Sie einen Kontext-Manager, wenn das Lesen abgeschlossen ist, um Dateihandlungen freizugeben.
  • Verwendung msg.validation_issues Um Probleme mit der Einhaltung des MSG-Formats zu überprüfen.
  • Die strict Parameter in MapiMessage.from_file() Steuerung der Fehlertoleranz auf False für eine milde Analyse
  • Alle Anlage-Daten werden während der from_file() Verwendung att.data den direkten Zugriff auf Bytes; iter_attachments_info() ist ein Komfort-Iterator über die bereits gefüllte Anhänge Liste
  • Verwendung to_email_string() für schnelle Textvorsichten ohne vollständige E-Mail-Objektkonstruktion

Häufige Probleme

AusgabeUrsacheBehebung
CFBError beim LadenNicht gültige CFB/MSG-DateiÜberprüfen , ob die Datei ein Outlook MSG ist .
Leere Karosserie nach der BeladungKörper nur in HTML gespeichertÜberprüfung msg.body_html statt der msg.body
Vermisste EmpfängerMSG hat keine Empfängerspeicher.Empfänger sind im MSG-Format optional; überprüfen Sie die msg.recipients

FAQ

Welche Versionen des MSG-Formats werden unterstützt?

Die Bibliothek liest und schreibt MSG-Dateien im CFB v3 und v4 Format, kompatibel mit Microsoft Outlook.

Kann ich die EML-Dateien lesen?

Die Bibliothek kann das MSG-Format verwenden. MapiMessage.from_email_message() Umwandlung aus RFC 5322 EmailMessage Objekte.

Wird die Thread-Sicherheit unterstützt?

Jeder von ihnen MapiMessage und . CFBReader Die gleichzeitige Zugriff auf separate Instanzen aus separaten Threads ist sicher.


Zusammenfassung der API-Referenzen

Klasse / MethodeBeschreibung
MapiMessageHochwertige Darstellung von MSG-Nachrichten
MapiMessage.from_file()Eine MSG-Datei laden
MapiMessage.create()Erstellen einer neuen MSG-Nachricht
MapiMessage.save()Speichern in MSG-Dateien
MapiMessage.to_email_message()Umwandlung in E-MailMessage (RFC 5322)
MapiMessage.from_email_message()Konvertieren von EmailMessage in MSG
MapiMessage.add_recipient()Empfänger hinzufügen
MapiMessage.add_attachment()Binäre Anlage hinzufügen
MapiAttachmentAnlage einer Nachricht
MapiRecipientEmpfänger einer Nachricht
MapiPropertyMAPI-Eigentumsangaben
CFBReaderCFB-Containerleser mit niedrigem Niveau
CFBWriterSchreibmaschine für CFB-Container mit niedrigem Niveau
MsgReaderStrukturleser mit geringer MSG-Ebene
 Deutsch