How can I get the outlook contact's avatar image?

倾然丶 夕夏残阳落幕 提交于 2019-12-22 09:13:30

问题


I am trying to get the contact's avatar image.

using Microsoft.Office.Interop.Outlook;

public sealed class OutlookAvatarFetcher
{
    private static void FetchAvatars()
    {
        var outlook = new Application();
        var folder = outlook.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderContacts);
        var items = folder.Items;

        for (var i = 0; i < items.Count; ++i)
        {
            var contact = items[i + 1] as ContactItem;
            if (contact == null)
                continue;


            if (contact.HasPicture)
            {
                // TODO store the picture somehow.
            }
        }
    }
}

But unfortunately I can't find a picture accessor.


回答1:


You can use the attachments property of the ContactItem:

contact.Attachments["ContactPicture.jpg"]

If you want to save the file to disk, for example, you could do something like this:

contact.Attachments["ContactPicture.jpg"].SaveAsFile(@"{some_path}\ContactPicture.jpg")



回答2:


Do you mean the picture that comes from Facebook or LinkedIn?

You cannot access it - MS did not provide any API to do that for legal purposes. Remember, that data comes from a third party service, and quite a few lawyers are involved in cases like this.



来源:https://stackoverflow.com/questions/16358890/how-can-i-get-the-outlook-contacts-avatar-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!