0
Ich versuche, eine empfangene E-Mail zu zippen, bevor sie an eine andere E-Mail angehängt wird. Also bin ich mit dem Reißverschlussteil festgefahren. Das Objekt, das ich zippen möchte, ist ein COM-Objekt und unterstützt die Serialisierung nicht. Irgendwelche Ideen, die mir dabei helfen können, sind willkommen!VSTO Outlook-Add-in: Zip-COM-Objekt
Und der Code so weit (selObject ist das COM-Objekt):
private void Report_Malicious_Email_Click(object sender, RibbonControlEventArgs e)
{
// selObject este mailul selectat
Object selObject = this.Application.ActiveExplorer().Selection[1];
if (selObject is Outlook.MailItem) // de aici incepe logica pentru forward cu atasament!
{
using (MemoryStream msCompressed = new MemoryStream())
using (GZipStream gZipStream = new GZipStream(msCompressed, CompressionMode.Compress))
using (MemoryStream msDecompressed = new MemoryStream())
{
new BinaryFormatter().Serialize(msDecompressed, selObject);
byte[] byteArray = msDecompressed.ToArray();
gZipStream.Write(byteArray, 0, byteArray.Length);
gZipStream.Close();
msCompressed.ToArray();
}
Outlook.MailItem eMail =
(Outlook.MailItem)this.Application.CreateItem(Outlook.OlItemType.olMailItem);
eMail.Subject = subjectEmail;
eMail.To = toEmail;
eMail.Body = bodyEmail;
eMail.Attachments.Add(selObject);
eMail.Send();
}
}