Pergunta

Eu estou tentando obter o endereço do remetente e-mail do e-mail que está a enviar usando outro endereço de e-mail. O remetente como mostra em perspectiva é ditribution-lists@domain.com em nome do usuário Nome [user.name@domain.com]. O objeto MAPI tem um método SentOnBehalfOfName que retorna "Nome de Usuário", mas não o endereço de e-mail. Alguém sabe como receber user.name@domain.com campo?

Foi útil?

Solução

using System;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Reflection;

namespace Helpers
{
    internal class EmailHelper
    {
        public static string GetSenderEmailAddress(Microsoft.Office.Interop.Outlook.MailItem mapiObject)
        {
            Microsoft.Office.Interop.Outlook.PropertyAccessor oPA;
            string propName = "http://schemas.microsoft.com/mapi/proptag/0x0065001F";
            oPA = mapiObject.PropertyAccessor;
            string email = oPA.GetProperty(propName).ToString();
            return email;
        }
    }
}

Outras dicas

Você tem http://www.dimastr.com/outspy/ ? É uma ferramenta útil para a perfuração para baixo em objetos MAPI no Outlook.

Além disso, se você usar http://www.dimastr.com/redemption/ você pode chegar a uma propriedade SentOnBehalfOfEmailAddress no objeto IRDOMail.

Se você estiver usando o Outlook 2007 você tem a MailItem.PropertyAccessor e você pode obter a propriedade PR_SENDER_EMAIL_ADDRESS mapi.

Marcus

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top