Savybės ir funkcionalumas

Savybės ir funkcionalumas

Savybės ir funkcionalumas

Šiame puslapyje apžvelgiamos visos pagrindinės funkcijos aspose-email-foss 26.3 su veikiančiais Python pavyzdžiais.


MSG failų skaitymas

Įkelkite MSG failą ir pasiekite jo pagrindines savybes:

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 failų kūrimas

Sukurkite naują laišką nuo pradžių:

from aspose.email_foss.msg import MapiMessage

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

Nustatykite temą ir turinį esamam laiškui:

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

Gavėjai

Pridėkite gavėjus su rodomais vardais ir tipais:

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

Priedai

Pridėkite dvejetainių failų priedus:

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

Įterpkite MSG laišką kaip įdėtą priedą:

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 savybės

Skaitykite ir rašykite MAPI savybes pagal savybės ID:

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

Iteruokite visas savybes:

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

El. pašto konvertavimas

Konvertuokite tarp MSG (MAPI) ir el. pašto (RFC 5322) formatų:

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

Žemo lygio CFB operacijos

Skaityti CFB konteinerio struktūrą tiesiogiai:

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

Rašyti CFB dokumentus:

from aspose.email_foss.msg import MsgWriter

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

Patarimai ir geriausia praktika

  • Visada kvieskite msg.close() arba naudokite context manager, kai baigsite skaityti, kad atlaisvintumėte failų rankenėles
  • Naudokite msg.validation_issues norėdami patikrinti MSG formato atitikties problemas
  • Šis strict parametras, esantis MapiMessage.from_file() valdo klaidos toleranciją — nustatykite į False lankščiam analizavimui
  • Visi priedų duomenys įkelami į atmintį per from_file() — naudokite att.data tiesiogiai pasiekti baitus; iter_attachments_info() yra patogus iteratorius per jau užpildytą priedų sąrašą
  • Naudokite to_email_string() greitiems teksto peržiūroms be pilno el. laiško objekto sukūrimo

Dažnos problemos

ProblemaPriežastisPataisa
CFBError įkeliantNeteisingas CFB/MSG failasPatikrinkite, ar failas yra tikras Outlook MSG
Tuščias turinys po įkėlimoTurinys saugomas tik HTML formatuPatikrinkite msg.body_html vietoj msg.body
Trūksta gavėjųMSG neturi gavėjų saugyklųGavėjai yra neprivalomi MSG formate; patikrinkite iter_attachments_info()

FAQ

Kokios MSG formato versijos palaikomos?

Biblioteka skaito ir rašo MSG failus CFB v3 ir v4 formatu, suderinamu su Microsoft Outlook.

Ar galiu skaityti EML failus?

Ne tiesiogiai. Biblioteka apdoroja MSG formatą. Naudokite MapiMessage.from_email_message() konvertuoti iš RFC 5322 EmailMessage objektus.

Ar palaikomas gijų saugumas?

Kiekvienas MapiMessage ir CFBReader Instancija yra nepriklausoma. Konkuruojanti prieiga prie atskirų instancijų iš atskirų gijų yra saugi.


API nuorodų santrauka

Klasė / MetodasAprašymas
MapiMessageAukšto lygio MSG žinutės atvaizdavimas
MapiMessage.from_file()Įkelti MSG failą
MapiMessage.create()Sukurkite naują MSG pranešimą
MapiMessage.save()Išsaugoti į MSG failą
MapiMessage.to_email_message()Konvertuoti į EmailMessage (RFC 5322)
MapiMessage.from_email_message()Konvertuoti iš EmailMessage į MSG
MapiMessage.add_recipient()Pridėti gavėją
MapiMessage.add_attachment()Pridėti binarinį priedą
MapiAttachmentPriedas prie pranešimo
MapiRecipientGavėjas pranešime
MapiPropertyMAPI savybės įrašas
CFBReaderŽemo lygio CFB konteinerio skaitytojas
CFBWriterŽemo lygio CFB konteinerio rašytojas
MsgReaderŽemo lygio MSG struktūros skaitytojas
 Lietuvių