C#如何在Outlook加载项中发送代表电子邮件地址

时间:2010-02-11 11:36:49

标签: c# outlook add-in outlook-addin mapi

我正在尝试从使用其他电子邮件地址发送的电子邮件中获取发件人电子邮件地址。 outlook中显示的发件人代表用户名[user.name@domain.com]为ditribution-lists@domain.com。 MAPI对象的方法SentOnBehalfOfName返回“用户名”,但不返回电子邮件地址。 有谁知道如何收到user.name@domain.com字段?

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

你有http://www.dimastr.com/outspy/吗?它是一个用于向下钻取到Outlook中的MAPI对象的有用工具。

此外,如果您使用http://www.dimastr.com/redemption/,则可以获取IRDOMail对象上的SentOnBehalfOfEmailAddress属性。

答案 2 :(得分:1)

如果您使用的是Outlook 2007,则可以获得MailItem.PropertyAccessor,并且可以获得PR_SENDER_EMAIL_ADDRESS mapi属性。

马库斯