Preguntas frecuentes — Aspose.Email FOSS para .NET
Licencias
¿Qué licencia usa Aspose.Email.Foss?
Licencia MIT. No se requiere clave de licencia. Úselo libremente en proyectos personales, comerciales y de código abierto.
Instalación
¿Cómo instalo Aspose.Email.Foss?
dotnet add package Aspose.Email.Foss¿Qué versión de .NET se requiere?
.NET 8.0 o posterior. La biblioteca no es compatible con .NET Framework ni .NET Standard.
¿Hay dependencias nativas?
No. La biblioteca es C# puro administrado sin dependencias nativas. Se ejecuta idénticamente en Windows, Linux, macOS, Docker y entornos sin servidor.
Compatibilidad de formatos
¿Qué formatos de correo electrónico son compatibles?
| Formato | Leer | Escribir |
|---|---|---|
| MSG (Outlook) | ✓ | ✓ |
| CFB (Compound File Binary) | ✓ | ✓ |
| EML (MIME / RFC 5322) | ✓ | ✓ |
¿Puedo leer archivos EML?
Sí. Use MapiMessage.LoadFromEml(stream) para cargar un archivo .eml estándar en unMapiMessage. El analizador MIME incorporado maneja encabezados plegados, contenido base64 y
mensajes multipartes.
¿Puedo convertir MSG a EML?
Sí. Llame a message.SaveToEml() para salida byte[] en memoria, o
message.SaveToEml(stream) para escribir en un archivo. Asunto, cuerpo, cuerpo HTML, remitente,
destinatarios y todos los archivos adjuntos se conservan.
¿Se admite TNEF (winmail.dat)?
No. Sólo se admiten los formatos estándar MSG (CFB) y EML (MIME).
¿Se admite IMAP/SMTP/POP3?
No. La biblioteca maneja archivos MSG directamente y no incluye ninguna capa de red/protocolo.
Uso de API
¿Cómo cargo un archivo MSG?
using Aspose.Email.Foss.Msg;
using var stream = File.OpenRead("message.msg");
var message = MapiMessage.FromStream(stream);
Console.WriteLine(message.Subject);¿Cómo creo un nuevo mensaje?
var message = MapiMessage.Create("Subject", "Body");
message.SenderEmailAddress = "alice@example.com";
message.AddRecipient("bob@example.com", "Bob");
message.Save("output.msg");¿Cómo añado archivos adjuntos?
// From byte array
message.AddAttachment("file.pdf", pdfBytes, "application/pdf");
// From stream
using var stream = File.OpenRead("photo.png");
message.AddAttachment("photo.png", stream, "image/png");¿Cómo convierto EML a MSG?
using var eml = File.OpenRead("message.eml");
var message = MapiMessage.LoadFromEml(eml);
message.Save("message.msg");¿Cómo accedo a la estructura CFB sin procesar?
using Aspose.Email.Foss.Cfb;
using var reader = CfbReader.FromFile("message.msg");
foreach (var entry in reader.IterChildren(CfbConstants.RootStreamId))
Console.WriteLine(entry.Name);Limitaciones conocidas
¿Hay algún método sin implementar?
No existen stubs intencionalmente no implementados en la versión actual.
¿Está disponible el soporte de calendario/cita?
La biblioteca maneja archivos MSG de forma genérica. Las propiedades específicas del calendario pueden accederse a través de SetProperty() / GetPropertyValue() con IDs de propiedad MAPI de CommonMessagePropertyId, pero no hay una API dedicada al calendario o a citas.
¿Se garantiza la seguridad en hilos?
Cada instancia de MapiMessage y CfbReader es independiente. El acceso concurrente a instancias separadas desde hilos diferentes es seguro. No comparta una única instancia entre hilos sin sincronización externa.