Управление на прикачени файлове
Работа с прикачени файлове в Outlook
Създаване и запазване на Outlook съобщения (MSG) файлове обяснява как да създавате и запазвате съобщения и как да създавате MSG файлове с прикачени файлове. Тази статия обяснява как да управлявате прикачени файлове в Microsoft Outlook с Aspose.Email. Прикачените файлове от файл със съобщение се достъпват и запазват на диск с помощта на MapiMessage клас Прикачени файлове свойство. The Прикачени файлове свойството е колекция от тип MapiAttachmentCollection клас.
Проверка на типа прикачен файл (Вграден или Обикновен)
Вградените и обикновените приачени файлове служат за различни цели. Вградените приачени файлове са визуално интегрирани в имейл съобщението и обикновено са изображения или мултимедийни файлове. Междувременно обикновените приачени файлове са отделни файлове, прикрепени към имейла, и могат да включват различни типове файлове. The MapiAttachment.IsInline свойство на MapiAttachment класът получава стойност, указваща дали прикаченият файл е вграден или редовен.
Следният примерен код извлича и показва информация за всеки прикачен файл в заредения MapiMessage, включително техните имена за показване и дали са вграден (inline) прикачени файлове или не.
var message = MapiMessage.Load(fileName);
foreach (var attach in message.Attachments)
{
Console.WriteLine($"{attach.DisplayName0} : {attach.IsInline)}");
}
Проверка на типа прикачен файл (IsReference)
Този MapiAttachment класът включва IsReference свойство, което позволява на разработчиците да идентифицират референтни прикачени файлове в съобщение. С помощта на следния примерен код можете да проверите дали прикаченият файл е референтен прикачен файл:
foreach (var attachment in msg.Attachments)
{
if (attachment.IsReference)
{
// Process reference attachment
}
}
Запазване на прикачени файлове от MSG файлове
За да запазите прикачени файлове от MSG файл:
- Итерарайте през MapiAttachmentCollection колекция и вземете отделните прикачени файлове.
- За да запазите прикачените файлове, извикайте метода Save() на класа MapiAttachment.
Следният кодов фрагмент показва как да запазите прикачените файлове на локалния диск.
Извличане на прикачени файлове от MSG файлове, форматирани като RTF
За съобщения, форматирани като RTF, следният код може да се използва за разграничаване и извличане на прикачени файлове, които са или вградени (Inline) или се показват като икона в тялото на съобщението. Следният кодов фрагмент показва как да идентифицирате и извлечете вграден прикачен файл от MSG, форматиран като RTF.
var eml = MapiMessage.Load("MSG file with RTF Formatting.msg");
foreach (var attachment in eml.Attachments)
{
if (IsAttachmentInline(attachment))
{
try
{
SaveAttachment(attachment, Data.Out/new Guid().ToString());
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
static bool IsAttachmentInline(MapiAttachment attachment)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "\x0003ObjInfo")
{
var odtPersist1 = BitConverter.ToUInt16(property.Data, 0);
return (odtPersist1 & (1 << (7 - 1))) == 0;
}
}
return false;
}
static void SaveAttachment(MapiAttachment attachment, string fileName)
{
foreach (var property in attachment.ObjectData.Properties.Values)
{
if (property.Name == "Package")
{
using var fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
fs.Write(property.Data, 0, property.Data.Length);
}
}
}
Получаване на вложени прикачени файлове на имейл съобщения
Вградените OLE прикачени файлове също се появяват в MapiMessage клас Колекция от прикачени файлове. Следният примерен код анализира файл със съобщение за вградени прикачени съобщения и го запазва на диска. The MapiMessage статичният метод FromProperties() на класа може да създаде ново съобщение от вграден прикачен файл. Следният кодов фрагмент показва как да получите вложени прикачени файлове на имейл съобщения.
Премахване на прикачени файлове
Библиотеката Aspose Outlook предоставя функционалност за премахване на прикачени файлове от Microsoft Outlook съобщения (.msg) файлове:
- Извикайте метода RemoveAttachments(). Той приема пътя към файла на съобщението като параметър. Той е реализиран като публичен статичен метод, така че не е необходимо да създавате инстанция на обекта.
Следният кодов отрязък ви показва как да премахнете прикачени файлове.
Можете също да извикате MapiMessage статичен метод на класа DestroyAttachment(). Работи по-бързо от RemoveAttachment(), тъй като методът RemoveAttachment() анализира файла със съобщението.
Добавяне на MSG прикачени файлове
Outlook съобщение може да съдържа други Microsoft Outlook съобщения като прикачени файлове, било то като обикновени или вградени съобщения. The MapiAttachmentCollection предоставя претоварени членове на метода Add за създаване на Outlook съобщения и с двата типа прикачени файлове.
Try it out!
Добавяйте или премахвайте имейл прикачени файлове с безплатния Aspose.Email Editor App.
Добавяне на референтни прикачени файлове към MapiMessages
Този ReferenceAttachmentOptions класът опростява добавянето на референтни прикачени файлове, като капсулира всички необходими свойства в един обект.
Параметри на ReferenceAttachmentOptions:
- sharedLink: Пълноценно споделен линк към прикачения файл, предоставен от уеб услугата, хостваща файла.
- url: Местоположението на файла или URL на ресурса.
- providerName: Името на доставчика на референтни прикачени файлове (например Google Drive, Dropbox).
- Пример: Добавяне на референтен прикачен файл с ReferenceAttachmentOptions
var options = new ReferenceAttachmentOptions(
"https://drive.google.com/file/d/1HJ-M3F2qq1oRrTZ2GZhUdErJNy2CT3DF/",
"https://drive.google.com/drive/my-drive",
"GoogleDrive");
// Add reference attachment
msg.Attachments.Add("Document.pdf", options);
Вграждане на съобщения като прикачени файлове
Следният кодов фрагмент показва как да вградите MSG файл като прикачен файл към съобщение.
Четене на вградени съобщения от прикачени файлове
Следният фрагмент от код показва как да прочетете вградени съобщения от прикачени файлове.
Вмъкване и замяна на прикачени файлове
Aspose.Email API предоставя възможност за вмъкване на прикачени файлове на конкретен индекс в родителското съобщение. Тя също предоставя възможност за замяна съдържанието на прикачен файл с друг прикачен файл от съобщение.
Try it out!
Изпълнете ReplaceAttach прост проект за приложение, и пробвайте възможностите на Aspose.Email за замяна на прикачени файлове в действие.
Вмъкване на прикачени файлове на конкретни места
Aspose.Email API предоставя възможността да вмъкнете MSG прикачен файл в родителски MSG, като използвате метода Insert на MapiAttachmentCollection – MapiAttachmentCollection Insert(int index, string name, MapiMessage msg). Следният кодов фрагмент показва как да вмъкнете прикачен файл на конкретно място.
Замяна на съдържанието на прикачения файл
Това може да се използва за замяна на съдържанието на вградените прикачени файлове с нови, като се използва методът Replace. Въпреки това, не може да се използва за вмъкване на прикачен файл с PR_ATTACH_NUM = 4 (например) в колекция, чийто Count = 2. Следният кодов отрязък ви показва как да замените съдържанието на прикачения файл.
Преименуване на прикачени файлове в MapiMessage
Възможно е да се редактира стойността на свойството DisplayName в прикачените файлове на MapiMessage.
var msg = MapiMessage.Load(fileName);
msg.Attachments[0].DisplayName = "New display name 1";
msg.Attachments[1].DisplayName = "New display name 2";
Запазване на прикачени файлове от дигитално подписани съобщения
Aspose.Email API предоставя възможност за получаване или задаване на стойност, указваща дали ясно подписаното съобщение ще бъде декодирано.