Como começar a usar o FOSS para Python

Como começar a usar o FOSS para Python

aspose-email-foss Python é uma biblioteca gratuita e licenciada pelo MIT para criar, ler e conversão de arquivos do Outlook MSG e contêineres CFB — não é necessário o Microsoft Office, não há nativo Extensões, Python puro de PyPI.

Guia Passo a Passo

Etapa 1: Instalar o Pacote

Problemas de Memória e Desempenho:

pip install aspose-email-foss

Verifique se a instalação está carregada corretamente:

from aspose.email_foss.msg import MapiMessage
print("aspose-email-foss is ready.")

Passo 2: Importar as classes necessárias

Importe os módulos necessários para a criação de mensagens, atribuição de propriedades e conversão de formato:

from datetime import datetime, timezone
from aspose.email_foss import msg
from aspose.email_foss.msg import MapiMessage, PropertyId

Passo 3: Crie um arquivo de

Usar MapiMessage.create() para criar uma mensagem com um assunto e corpo. Defina metadados do remetente com PropertyId Constantes, adicione os destinatários e anexe um arquivo.

message = MapiMessage.create("Getting Started", "Hello from aspose-email-foss!")

message.set_property(PropertyId.SENDER_NAME, "Build Agent")
message.set_property(PropertyId.SENDER_EMAIL_ADDRESS, "agent@example.com")
message.set_property(
    PropertyId.MESSAGE_DELIVERY_TIME,
    datetime(2026, 1, 1, 9, 0, tzinfo=timezone.utc),
)

message.add_recipient("alice@example.com", display_name="Alice Example")
message.add_attachment("notes.txt", b"Meeting notes go here.\n", mime_type="text/plain")

message.save("getting-started.msg")
print("getting-started.msg written.")

Passo 4: Leia o arquivo MSG de volta

Carregar o arquivo salvo usando MapiMessage.from_file() como um gestor de contexto. acessar o subject e body propriedades diretamente do objeto devolvido.

with MapiMessage.from_file("getting-started.msg") as message:
    print(f"Subject: {message.subject}")
    print(f"Body   : {message.body}")

Passo 5: Converta o MSG para EML

to_email_bytes() Converta a mensagem carregada para o formato RFC 5322. Escreva o resultado para a .eml arquivo com a biblioteca padrão.

from pathlib import Path

with MapiMessage.from_file("getting-started.msg") as message:
    Path("getting-started.eml").write_bytes(message.to_email_bytes())
    print("getting-started.eml written.")

Problemas Comuns e Soluções

ModuleNotFoundError: No module named 'aspose' O pacote não está instalado no ambiente Python ativo. pip install aspose-email-foss no mesmo ambiente virtual que você está usando para executar seu script. pip show aspose-email-foss.

FileNotFoundError Quando chamar MapiMessage.from_file() O caminho que você passou não existe ou usa o separador errado para seu sistema operacional. pathlib.Path Para construir caminhos portáteis: MapiMessage.from_file(Path("folder") / "file.msg").

MSG arquivo abre no Outlook, mas não mostra o assunto MapiMessage.create() aceita o assunto como primeiro argumento posicional. se você passou por Uma cadeia vazia, o Outlook exibe a mensagem como não-título. explicitamente com set_property(PropertyId.SUBJECT, "My Subject").

EML conversão produz um corpo vazio to_email_bytes() Usar body_html Se forem colocados e cair de volta para body.Confirme que em pelo menos uma dessas propriedades não está vazia após o carregamento do MSG com from_file().

O conteúdo do Unicode nos destinatários ou no assunto é truncado Passagem unicode_strings=True São MapiMessage.create() Para garantir que as propriedades de string sejam O sistema é armazenado em Unicode (PT_UNICODE) e não ANSI (pt_STRING8).

Perguntas Frequentes

O Microsoft Office é necessário?

A biblioteca é totalmente autônoma.Lê e escreve os formatos binários MSG e CFB nativamente em Python sem qualquer dependência do Microsoft Office, da automação COM ou das APIs Win32.

Posso usar esta biblioteca no Linux ou macOS?

Sim sim . aspose-email-foss É Python puro e funciona em qualquer plataforma que suporte a Python 3.10 ou posterior, incluindo Windows, macOS, Linux, contêineres Docker e funções sem servidor.

A biblioteca é gratuita para uso comercial?

É liberado sob a Licença MIT. Você pode usá-lo, modificar e redistribuí-la para qualquer finalidade, incluindo aplicações comerciais, sem royalties ou requisitos de atribuição além do texto da licença.

Como posso adicionar os receptores CC e BCC?

Passagem recipient_type=msg.RECIPIENT_TYPE_CC ou msg.RECIPIENT_TYPE_BCC Como o terceiro Argumento do add_recipient():

message.add_recipient("bob@example.com", display_name="Bob", recipient_type=msg.RECIPIENT_TYPE_CC)

Como posso colocar um em outro?

Usar MapiMessage.add_embedded_message_attachment(),Passando pelo interior MapiMessage O primeiro argumento como objecto:

inner = MapiMessage.create("Inner message", "Embedded body.")
outer = MapiMessage.create("Outer message", "See attachment.")
outer.add_embedded_message_attachment(inner, "inner.msg")
outer.save("outer.msg")

Veja também

 Português