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_issuesUm Probleme mit der Einhaltung des MSG-Formats zu überprüfen. - Die
strictParameter inMapiMessage.from_file()Steuerung der Fehlertoleranz aufFalsefür eine milde Analyse - Alle Anlage-Daten werden während der
from_file()Verwendungatt.dataden 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
| Ausgabe | Ursache | Behebung |
|---|---|---|
CFBError beim Laden | Nicht gültige CFB/MSG-Datei | Überprüfen , ob die Datei ein Outlook MSG ist . |
| Leere Karosserie nach der Beladung | Körper nur in HTML gespeichert | Überprüfung msg.body_html statt der msg.body |
| Vermisste Empfänger | MSG 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 / Methode | Beschreibung |
|---|---|
MapiMessage | Hochwertige 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 |
MapiAttachment | Anlage einer Nachricht |
MapiRecipient | Empfänger einer Nachricht |
MapiProperty | MAPI-Eigentumsangaben |
CFBReader | CFB-Containerleser mit niedrigem Niveau |
CFBWriter | Schreibmaschine für CFB-Container mit niedrigem Niveau |
MsgReader | Strukturleser mit geringer MSG-Ebene |