Управление контактами MS

Эффективное управление контактами имеет жизненно важное значение для профессионалов и бизнеса. Это обеспечивает легкость в поиске и установлении связей с нужными людьми, когда это необходимо. Независимо от того, планируете ли вы встречи, отправляете электронные письма или делитесь документами, организованные и актуальные контакты могут значительно повысить вашу продуктивность.

MSG файлы — это часто используемый формат для хранения электронных сообщений, контактов и других элементов. Извлечение контактной информации из файлов Outlook MSG программно может быть важной задачей для различных сценариев, таких как миграция данных или автоматизированная обработка данных. В этой статье мы рассмотрим, как загружать, извлекать и сохранять контактную информацию из файлов Outlook MSG.

Начало работы с продвинутым C# API

Чтобы работать с MSG файлами, мы будем использовать Aspose.Email для .NET. Это мощная и универсальная библиотека для обработки и управления электронной почтой, которая предоставляет разработчикам комплексный набор инструментов и функциональности для работы с электронными сообщениями, задачами, календарями, контактами и различными задачами, связанными с электронной почтой, в приложениях .NET. Поэтому перед началом убедитесь, что у вас установлен Aspose.Email и он подключен к вашему проекту. Если вы этого еще не сделали, вы можете скачать его DLL или установить из NuGet.

Загрузка контакта из MSG файлов

Чтобы извлечь контактную информацию из MSG файла, нам нужно загрузить файл в объект MapiMessage, используя метод MapiMessage.Load от Aspose.Email. Вы можете загрузить контакт в MapiMessage и обрабатывать его как обычное сообщение MAPI: читать свойства, изменять, сохранять, добавлять в хранилище, отправлять. Следующий пример кода покажет вам, как загрузить и обработать контакты Outlook:

  1. Загрузите существующий элемент контакта из MSG файла, используя метод MapiMessage.Load. Этот метод считывает содержимое указанного MSG файла и создает объект MapiMessage, представляющий электронное сообщение.
  2. Установите содержание HTML тела с помощью метода SetBodyContent, чтобы заменить содержимое.
  3. Укажите параметр BodyContentType.Html, который указывает, что предоставленное содержимое в формате HTML. Это гарантирует, что содержимое правильно интерпретируется как HTML при просмотре клиентами электронной почты.
  4. Сохраните измененный объект MapiMessage обратно в MSG файл с помощью метода Save.
var msg = MapiMessage.Load("Lynna M. Dyer.msg");
msg.SetBodyContent("<!DOCTYPE html><html><body><h1>Lynna M. Dyer</h1></body></html>", BodyContentType.Html);
msg.Save("Lynna M. Dyer.msg");

Извлечение деталей контакта

Как только мы загрузили MSG файл, мы можем извлечь детали контакта, используя класс MapiContact. MapiContact предоставляет удобные свойства для доступа к конкретным полям контакта. Приведенный код демонстрирует, как извлечь и отобразить контактную информацию из MSG email.

  1. Начните с проверки, является ли MSG элементом контакта. Используйте свойство SupportedType, которое указывает тип элемента Outlook.
  2. Преобразуйте объект msg в объект MapiContact. Это преобразование позволяет получить доступ к специализированным свойствам и методам, специфичным для элементов контактов.
  3. Извлеките и отобразите контактную информацию. В этом примере мы получаем доступ к свойствам DisplayName, Email, CompanyName и Title объекта MapiContact, которые представляют имя контакта, адрес электронной почты, название компании и должность соответственно. Вы можете получить доступ к другим свойствам объекта MapiContact в соответствии с вашими требованиями.
if (msg.SupportedType == MapiItemType.Contact)
{
    var contact = (MapiContact)msg.ToMapiMessageItem();

    Console.WriteLine(contact.NameInfo.DisplayName);
    Console.WriteLine(contact.ElectronicAddresses.Email1);
    Console.WriteLine(contact.ProfessionalInfo.CompanyName);
    Console.WriteLine(contact.ProfessionalInfo.Title);
}

Сохранение фото контакта

Если MSG файл содержит фото контакта, мы можем сохранить его в файл, используя следующий код:

  1. Проверьте, есть ли у контакта фото. Это делается путем оценки, не является ли свойство contact.Photo равным null.
  2. Если фото присутствует, код продолжает сохранять его как файл.
if (contact.Photo != null)
{
    System.IO.File.WriteAllBytes($"{contact.NameInfo.DisplayName}.{MapiContactPhotoImageFormat.Jpeg.ToString()}", contact.Photo.Data);
}

Сохранение контакта в VCF

Кроме того, часто необходимо конвертировать контакт из MSG в более универсальный формат, такой как VCARD. VCard (Virtual Contact File) — это стандартный формат файла, используемый для хранения контактной информации. Приведенный пример кода демонстрирует, как сохранить элемент контакта, представленный объектом контакта, как файл VCard:

Код использует метод Save объекта контакта для инициирования процесса сохранения контакта как VCard.

contact.Save("Lynna M. Dyer.vcf", ContactSaveFormat.VCard);

Загрузка контакта из VCF

Вы также можете загрузить существующий файл VCARD в объект MapiContact. Приведенный пример кода демонстрирует, как загрузить контактную информацию из VCard и создать объект MapiContact:

  1. Код начинается с использования метода MapiContact.FromVCard для загрузки контактной информации из VCard.
  2. Переменная contact содержит только что созданный объект MapiContact, который можно использовать для доступа и манипуляции деталями контакта программно.
var contact = MapiContact.FromVCard("Lynna M. Dyer.vcf");

Заключение

В этой статье мы изучили, как программно извлекать контактную информацию из файлов Outlook MSG с помощью Aspose.Email. Мы прошли через процесс загрузки MSG файла, извлечения деталей контакта с использованием класса MapiContact и сохранения контакта в различных форматах. Aspose.Email упрощает процесс работы с MSG файлами и предоставляет широкий спектр функциональности для работы с данными электронной почты.

Не забудьте изменить пути к файлам и адаптировать код в соответствии с вашими специфическими требованиями. Обширная документация Aspose.Email и полезные форумы сообщества помогут вам эффективно использовать его возможности для извлечения контактной информации.

См. также