Outlook 연락처 관리

MapiMessage와 마찬가지로, Aspose.Email를 사용하면 Outlook 연락처를 생성할 수 있습니다. The MapiContact 클래스는 Outlook 연락처를 생성하는 데 필요한 모든 연락처 관련 속성을 제공합니다. 이 문서는 the 를 사용하여 Outlook 연락처를 생성, 저장 및 읽는 방법을 보여줍니다 MapiContact 클래스.

Outlook 연락처 생성 및 저장

연락처를 생성하고 디스크에 저장하려면:

  1. 새 객체를 인스턴스화합니다 MapiContact 클래스.
  2. 연락처 속성 정보를 입력합니다.
  3. 사진 데이터를 추가합니다(있는 경우).
  4. 연락처를 MSG 또는 VCard 형식으로 저장합니다.

다음 코드 스니펫은 Outlook 연락처를 생성하고 저장하는 방법을 보여줍니다.

MAPI 배포 목록을 VCF 파일로 저장

아래 코드 샘플은 배포 목록을 다중 연락처 VCF 파일로 저장하는 방법을 보여줍니다:

// convert the `msg` object to a `MapiMessage` object
var dlist = (MapiDistributionList)msg.ToMapiMessageItem();

//save the distribution list
var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
dlist.Save("distribution_list.vcf", options);

다중 연락처 VCF 파일을 MapiDistributionList 로 변환

Aspose.Email는 다중 연락처 VCF 파일을 into 로 변환을 지원합니다 MapiDistributionList 객체이며, 이를 통해 여러 연락처를 애플리케이션에 직접 관리하고 가져오기가 쉬워집니다. 이 기능은 다음 정적 메서드를 통해 접근할 수 있습니다 the MapiDistributionList 클래스:

아래 코드 샘플은 이 기능을 사용하는 방법을 보여줍니다:

// Convert a multi-contact VCF file to a MapiDistributionList
MapiDistributionList dlist = MapiDistributionList.FromVCF(fileName);

연락처를 VCF 형식으로 저장

연락처를 버전 3 VCF 형식으로 저장하려면 다음을 사용하십시오 VCardVersion 값을 설정하기 위한 열거형 VCardSaveOptions.Version 속성. 다음 샘플 코드는 사용 방법을 보여줍니다. VCardVersion 연락처를 VCF 버전 3 형식으로 저장하기 위한 enumerable:

var options = new MapiDistributionListSaveOptions(ContactSaveFormat.VCard);
options.Version = VCardVersion.V30;
dlist.Save("distribution_list.vcf", options);

MAPI 연락처 읽기

다음은 MapiContact 클래스를 사용하면 Outlook MSG 및 VCard 형식의 연락처를 모두 로드할 수 있습니다. 다음 코드 스니펫은 MSG와 VCF로 저장된 Outlook 연락처를 a 로 로드하는 방법을 보여줍니다 MapiContact.

MSG 파일에서 연락처 로드

다음 코드 스니펫은 MSG에서 연락처를 로드하는 방법을 보여줍니다.

VCard에서 연락처 로드

다음 코드 스니펫은 VCard에서 연락처를 로드하는 방법을 보여줍니다.

사용자 지정 옵션으로 vCard에서 MAPI 연락처 로드

vCard(.vcf) 파일을 MAPI 연락처로 변환할 때 더 많은 유연성을 제공하기 위해 Aspose.Email for .NET은 오버로드를 제공합니다 MapiContact.FromVCard(string filePath, VCardLoadOptions options) a 를 수락하는 메서드 VCardLoadOptions 객체. 이는 vCard 파일이 해석되는 방식을 개선된 제어를 제공하며, 특히 다양한 vCard 형식, 인코딩 또는 고급 파싱 시나리오 작업 시 유용합니다.

다음 코드 샘플은 .vcf 연락처 파일을 a 로 로드하는 방법을 보여줍니다 MapiContact 수락하는 오버로드를 사용한 object VCardLoadOptions. 로드된 연락처는 PST 파일, MSG 내보내기 또는 기타 Outlook 호환 형식에서 사용할 수 있습니다.

var mapiContact = MapiContact.FromVCard("contact.vcf", new VCardLoadOptions());
Console.WriteLine(mapiContact.NameInfo.DisplayName);

지정된 인코딩으로 VCard에서 연락처 로드

다음 코드 스니펫은 지정된 인코딩으로 VCard에서 연락처를 로드하는 방법을 보여줍니다.

지정된 인코딩으로 VCard 연락처 항목 저장

다음을 사용하여 VCard 파일 작업 시 저장 동작을 사용자 지정합니다 VCardSaveOptions 클래스. PreferredTextEncoding 클래스의 이 속성은 VCard 연락처 항목을 저장할 때 사용할 인코딩을 지정합니다.

다음 코드 예제는 프로젝트에서 이 속성을 구현하는 방법을 보여줍니다.

var cont = VCardContact.Load(fileName, Encoding.UTF8);
var opt = new VCardSaveOptions();
opt.PreferredTextEncoding = Encoding.UTF8;
cont.Save("my.vcard", opt);

확장 필드와 함께 VCard 파일 저장

다음은 UseExtensions 속성을 사용하면 vCard 파일을 저장할 때 확장 필드를 사용할지 여부를 제어할 수 있습니다. true(기본값)로 설정하면 확장이 허용되어 사용자 정의 필드 및 추가 연락처 정보를 호환합니다.

VCard 형식에서 다중 연락처 읽기

우리 라이브러리를 사용하면 VCard에서 모든 연락처 목록을 가져올 수 있습니다. 다음 메서드와 단계로 수행할 수 있습니다:

// Checks whether VCard source stream contains multiple contacts.
VCardContact.IsMultiContacts(Stream stream)

// Loads list of all contacts from VCard file.
VCardContact.LoadAsMultiple(string filePath, Encoding encoding)

// Loads list of all contacts from VCard stream.
VCardContact.LoadAsMultiple(Stream stream, Encoding encoding)

다음 코드 스니펫은 여러 연락처가 포함된 VCard 파일을 처리하는 방법을 보여줍니다:

using (FileStream stream = new FileStream("test.vcf", FileMode.Open, FileAccess.Read))
{
    if(VCardContact.IsMultiContacts(stream))
    {
        List<VCardContact> contacts = VCardContact.LoadAsMultiple(stream, Encoding.UTF8);
    }
}

vCard 연락처를 비동기적으로 로드

다음은 VCardContact Aspose.Email for .NET의 클래스는 vCard 파일의 비동기 로드를 지원합니다. 이를 통해 애플리케이션은 메인 스레드를 차단하지 않고 .vcf 파일 또는 스트림에서 단일 또는 다수의 연락처를 효율적으로 읽을 수 있어 대용량 연락처 목록을 다루는 현대적인 데스크톱, 웹 또는 모바일 애플리케이션에 이상적입니다. 이 클래스의 다음 메서드가 해당 작업을 수행할 수 있습니다:

  • LoadAsync

  • LoadAsMultipleAsync

다음 코드 샘플은 VCardContact.LoadAsMultipleAsync를 사용하여 .vcf 파일에서 비동기적으로 여러 vCard 연락처를 로드하는 방법을 보여줍니다. 로드된 연락처는 루프에서 처리되며 각 연락처의 표시 이름을 콘솔에 출력합니다. 비동기 접근 방식은 큰 파일을 읽는 경우에도 애플리케이션이 응답성을 유지하도록 보장합니다.

var contacts = await VCardContact.LoadAsMultipleAsync("contacts.vcf", new VCardLoadOptions(), CancellationToken.None);

foreach (var contact in contacts)
{
    Console.WriteLine(contact.IdentificationInfo.DisplayName);
}

연락처 정보를 MHTML로 렌더링

Outlook 연락처는 Aspose.Email API를 사용해 MHTML로 변환할 수 있습니다. 이 예제는 VCard를 로드하는 방법을 보여줍니다 MapiContact 그런 다음 다음을 사용하여 MHTML로 변환합니다 MailMessage API.

//Load VCF Contact and convert to MailMessage for rendering to MHTML
var contact = MapiContact.FromVCard("Contact.vcf");

MemoryStream ms = new MemoryStream();
contact.Save(ms, ContactSaveFormat.Msg);
ms.Position = 0;
MapiMessage msg = MapiMessage.Load(ms, new MsgLoadOptions());
MailConversionOptions op = new MailConversionOptions();
MailMessage eml = msg.ToMailMessage(op);

//Prepare the MHT format options
MhtSaveOptions mhtSaveOptions = new MhtSaveOptions();
mhtSaveOptions.CheckBodyContentEncoding = true;
mhtSaveOptions.PreserveOriginalBoundaries = true;
MhtFormatOptions formatOp = MhtFormatOptions.WriteHeader | MhtFormatOptions.RenderVCardInfo;
mhtSaveOptions.RenderedContactFields = ContactFieldsSet.NameInfo | ContactFieldsSet.PersonalInfo | ContactFieldsSet.Telephones | ContactFieldsSet.Events;
mhtSaveOptions.MhtFormatOptions = formatOp;
eml.Save("ContactMhtml_out.mhtml", mhtSaveOptions);