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_issuesPara verificar problemas de conformidade com o formato MSG. - A Comissão
strictParâmetro em:MapiMessage.from_file()Controlas tolerância a erros definida em:Falsepara análise suave - Todos os dados de anexo são carregados na memória durante o processo de transferência.
from_file()utilizaçãoatt.dataPara 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ão | Causa da morte | Correçã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 carga | Corpo armazenado apenas em HTML | Verificação msg.body_html em vez de: msg.body |
| Destinatários desaparecidos | O 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étodo | Descrição: |
|---|---|
MapiMessage | Representaçã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 |
MapiAttachment | Anexo de mensagem |
MapiRecipient | destinatário de uma mensagem |
MapiProperty | Entrada de propriedade MAPI |
CFBReader | Leitora de recipientes CFB de baixo nível |
CFBWriter | Escritor de recipientes CFB de baixo nível |
MsgReader | Leitora de estruturas de MSG de baixo nível |