Je travaille actuellement sur le développement de l'API pour Outlook 2013 en C# et j'étais en train de créer un groupe de contact (datalist) lorsque j'ai rencontré un problème étrange .Outlook 2013 API ajout de contacts à un groupe de contacts créé par programme
J'ai réussi à créer un groupe de contacts en utilisant le code suivant, mais après la création, il apparaît que le groupe de contacts ne contient aucun contact.
Cependant, lors de l'inspection lors de la création du groupe et de l'ajout des contacts (filtre de doit avoir une adresse e-mail), je peux voir les contacts stockés dans l'affichage du groupe de contact avant d'être sauvegardé.
Outlook.DistListItem distList = Application.CreateItem(Outlook.OlItemType.olDistributionListItem) as Outlook.DistListItem;
distList.Subject = "TEST GROUP";
// grab all addresses such that primary email is not an empty string
string filter = "[Email1Address] <> ''";
// grab the table of users
Outlook.Table table = Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts).GetTable(filter, Outlook.OlTableContents.olUserItems);
// addingin email address so table must have column to represent this
table.Columns.Add("Email1Address");
while (!table.EndOfTable)
{
Outlook.Row nextRow = table.GetNextRow();
if (nextRow["Email1Address"] == null)
{
// no more addresses left to process.
break;
}
else
{
// create a recipient based upon information in our table
Outlook.Recipient recipient = Application.Session.CreateRecipient(nextRow["Email1Address"].ToString());
// ensure recipient is valid by checking our address book for resolution
recipient.Resolve();
MessageBox.Show(recipient.ToString() + "\nEOT: " + table.EndOfTable);
distList.AddMember(recipient);
}
}
// name the list?
distList.DLName = "Testing addin";
// save the list
distList.Save();
Lorsque vous tentez d'envoyer un e-mail à ce groupe de contact, je suis invité avec le message d'erreur suivant:
Le groupe de contact (s) ce message est adressé à doit contenir au moins un destinataire.
Êtes-vous sûr Recipient.Resolve() retourne vrai? –
Oui, comme je les prends directement à partir de mon carnet de contacts, j'avais supposé qu'ils auraient résolu correctement, mais j'ai vérifié sur toutes les entrées et chacun revenait vrai. – Healsgood