문제

다른 이메일 주소를 사용하여 전송되는 이메일에서 발신자 이메일 주소를 가져 오려고합니다. Outlook에서 표시되는 발신자는 사용자 이름 [user.name@domain.com]을 대신하여 dottribution-lists@domain.com입니다. 그만큼 MAPI 객체에는 메소드가 있습니다 SentOnBehalfOfName "사용자 이름"을 반환하지만 이메일 주소는 아닙니다. 누구든지 user.name@domain.com 필드를받는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

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;
        }
    }
}

다른 팁

당신은 가지고 있습니까? http://www.dimast.com/outspy/ ? Outlook에서 MAPI 객체로 드릴링하는 데 유용한 도구입니다.

또한 사용하는 경우 http://www.dimast.com/redemption/ Irdomail 오브젝트의 SentonbehalfoFeMailAddress 속성에 도달 할 수 있습니다.

Outlook 2007을 사용하고 있다면 mailitem.propertyaccessor 그리고 pr_sender_email_address mapi 속성을 얻을 수 있습니다.

마커스

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top