Hantera Outlook-kontakter

Precis som MapiMessage låter Aspose.Email dig skapa Outlook‑kontakter. MapiContact klassen tillhandahåller alla kontaktrelaterade egenskaper som krävs för att skapa en Outlook‑kontakt. Denna artikel visar hur man skapar, sparar och läser en Outlook‑kontakt med hjälp av MapiContact klass.

Skapa och spara Outlook‑kontakt

För att skapa en kontakt och spara den på disk:

  1. Instansiera ett nytt objekt av MapiContact klass.
  2. Ange kontaktens egenskapsinformation.
  3. Lägg till fotodata (om någon).
  4. Spara kontakten som MSG- eller VCard-format.

Följande kodsnutt visar hur man skapar och sparar en Outlook‑kontakt.

Spara MAPI‑distributionslistor till VCF‑filer

Kodexemplet nedan visar hur du sparar en distributionslista till en VCF‑fil med flera kontakter:

// 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);

Konvertera VCF‑filer med flera kontakter till MapiDistributionList

Aspose.Email stöder konvertering av VCF‑filer med flera kontakter till MapiDistributionList objekt, vilket gör det enkelt att hantera och importera flera kontakter direkt i dina applikationer. Denna funktion är tillgänglig via följande statiska metoder i MapiDistributionList klass:

Kodexemplet nedan demonstrerar hur du använder denna funktion:

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

Spara kontakter i VCF-format

För att spara kontakten i VCF version 3-format, använd VCardVersion enum för att sätta VCardSaveOptions.Version egenskap. Följande exempel kod demonstrerar användningen av VCardVersion enumerabel för att spara kontakten i VCF version 3‑format:

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

Läsa MAPI‑kontakter

Den MapiContact klassen kan användas för att ladda både Outlook MSG- och VCard‑formatkontakter. Följande kodsnutt visar hur du laddar Outlook‑kontakter sparade som MSG och VCF i en MapiContact.

Ladda kontakter från MSG-filer

Följande kodsnutt visar hur du laddar kontakter från MSG.

Ladda kontakter från VCard-filer

Följande kodsnutt visar hur du laddar kontakter från VCard.

Ladda MAPI‑kontakter från vCard med anpassade alternativ

För att ge mer flexibilitet vid konvertering av vCard‑filer (.vcf) till MAPI‑kontakter, erbjuder Aspose.Email för .NET en överlagring MapiContact.FromVCard(string filePath, VCardLoadOptions options) metod som accepterar en VCardLoadOptions objekt. Det ger förbättrad kontroll över hur vCard‑filer tolkas – särskilt vid arbete med olika vCard‑format, kodningar eller avancerade parsingscenarier.

Följande kodexempel visar hur du laddar en .vcf‑kontaktdfil i en MapiContact objekt med överlagringen som accepterar VCardLoadOptions. Den laddade kontakten kan sedan användas i PST-filer, MSG‑export eller andra Outlook‑kompatibla format.

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

Ladda kontakter från VCard med specificerad kodning

Följande kodsnutt visar hur du laddar kontakter från VCard med angiven kodning.

Spara VCard‑kontaktobjekt med specificerad kodning

Anpassa sparbeteendet när du arbetar med VCard‑filer med hjälp av VCardSaveOptions klass. Den PreferredTextEncoding klassens egenskap anger vilken kodning som ska användas när VCard‑kontaktobjekt sparas.

Följande kodexempel visar hur du implementerar denna egenskap i ditt projekt:

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

Spara VCard‑filer med utökade fält

Den UseExtensions egenskapen låter dig styra om utökade fält får användas vid sparande av vCard‑filer. När den är satt till true (standard) tillåts extensions, vilket ger kompatibilitet med anpassade fält och extra kontaktinformation.

Läs flera kontakter i VCard-format

Vårt bibliotek möjliggör att få listan över alla kontakter från en VCard. Det kan göras med hjälp av följande metoder och steg:

// 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)

Följande kodsnutt visar hur du hanterar VCard‑filer som innehåller flera kontakter:

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

Ladda vCard‑kontakter asynkront

Den VCardContact klassen i Aspose.Email för .NET stödjer asynkron laddning av vCard‑filer. Detta gör det möjligt för applikationer att effektivt läsa enskilda eller flera kontakter från .vcf‑filer eller strömmar utan att blockera huvudtråden – idealiskt för moderna skrivbords‑, webb‑ eller mobilapplikationer som hanterar stora kontaktlistor. Följande metoder i denna klass kan utföra uppgiften:

  • LoadAsync

  • LoadAsMultipleAsync

Följande kodexempel visar hur du asynkront laddar flera vCard‑kontakter från en .vcf‑fil med VCardContact.LoadAsMultipleAsync. De laddade kontakterna bearbetas i en loop där varje kontakts visningsnamn skrivs ut till konsolen. Det asynkrona tillvägagångssättet säkerställer att applikationen förblir responsiv, även vid läsning av stora filer.

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

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

Rendera kontaktinformation till MHTML

Outlook‑kontakt kan konverteras till MHTML med Aspose.Email API. Detta exempel visar hur en VCard laddas in i MapiContact och sedan konverteras till MHTML med hjälp av 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);