Características e funcionalidades

Características e funcionalidades

Características e funcionalidades

Esta página abrange todas as principais características de: Aspose-email-foss 26.3 com exemplos de Python a funcionar.


Leitura de ficheiros MSG

Carregar um arquivo MSG e acessar o assunto, corpo, HTML corpo e propriedades de classe de mensagem:

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

Criar arquivos MSG

Chama-me . MapiMessage.create() com um assunto e uma sequência de corpo para construir um objeto de mensagem, depois salvá-lo para arquivo:

from aspose.email_foss.msg import MapiMessage

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

Indicar assunto e corpo numa mensagem existente:

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

Beneficiários

Aditivos de Add To e Cc utilizando o método “C” para a utilização do sistema. add_recipient() com um endereço de e-mail, nome da tela e tipo do destinatário:

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

Anexos

Chama-me . add_attachment() Com um nome de ficheiro, bytes cru e um tipo MIME opcional para anexar um ficheiros à mensagem:

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

Incorporar uma mensagem MSG como anexo anexado:

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

Propriedades MAPI

Acesso às propriedades MAPI cru usando get_property() e a) set_property() com um PropertyId constante para o campo-alvo:

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

Iterar todas as propriedades:

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

Conversão de e-mail

Chama-me . to_email_string() para representar um MSG como texto da RFC 5322, ou from_email_message() para converter um EmailMessage De volta para o MapiMessage:

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

Operações de CFB de baixo nível

Abrir um . CFBReader Para inspecionar o cabeçalho do ficheiro composto, contar setores, iterar entradas de armazenamento e enumerar entrades de fluxo:

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

Serialização de um MapiMessage a bytes brutos com to_bytes() e escrever o buffer diretamente para um ficheiro MSG no disco:

from aspose.email_foss.msg import MsgWriter

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

Dicas e melhores práticas

  • Sempre ligue. msg.close() ou usar um gerenciador de contexto quando terminar a leitura para liberar os manobras do arquivo
  • Utilização: msg.validation_issues Para verificar problemas de conformidade com o formato MSG.
  • A Comissão strict Parâmetro em: MapiMessage.from_file() Controlas tolerância a erros definida em: False para análise suave
  • Todos os dados de anexo são carregados na memória durante o processo de transferência. from_file() utilização att.data Para aceder directamente aos bytes; iter_attachments_info() é um iterador de conveniência sobre a lista de anexos já preenchidos
  • Utilização: to_email_string() para visualizações rápidas de texto sem construção completa do objeto de e-mail

Problemas comuns

EmissãoCausa da morteCorreção
CFBError quando a carga é efectuada.Não é um ficheiro CFB/MSG válido.Verificar se o arquivo é um MSG Outlook real
Carroço vazio após cargaCorpo armazenado apenas em HTMLVerificação msg.body_html em vez de: msg.body
Destinatários desaparecidosO MSG não tem depósitos de recepção.Os destinatários são opcionais no formato MSG; verificar: msg.recipients

FAQ

Que versões do formato MSG são suportadas?

A biblioteca lê e escreve arquivos MSG no formato CFB v3 e v4, compatível com o Microsoft Outlook.

Posso ler os ficheiros EML?

Não diretamente, a biblioteca lida com o formato MSG. MapiMessage.from_email_message() Para converter a partir da RFC 5322 EmailMessage objetos.

A segurança de fios é suportada?

Cada um. MapiMessage e a) CFBReader O acesso simultâneo a instâncias separadas de threads separados é seguro.


Resumo de referência da API

Classe / MétodoDescrição:
MapiMessageRepresentação de mensagens MSG de alto nível
MapiMessage.from_file()Carregar um ficheiro MSG
MapiMessage.create()Criar uma nova mensagem MSG
MapiMessage.save()Salvar para arquivo MSG
MapiMessage.to_email_message()Converter para EmailMessage (RFC 5322)
MapiMessage.from_email_message()Converter de EmailMessage para MSG
MapiMessage.add_recipient()Adicionar um destinatário
MapiMessage.add_attachment()Adicionar um anexo binário
MapiAttachmentAnexo de mensagem
MapiRecipientdestinatário de uma mensagem
MapiPropertyEntrada de propriedade MAPI
CFBReaderLeitora de recipientes CFB de baixo nível
CFBWriterEscritor de recipientes CFB de baixo nível
MsgReaderLeitora de estruturas de MSG de baixo nível

Ver também:

 Português