相关疑难解决方法(0)

从MS Outlook邮件中读取发件人的电子邮件地址

我使用下面的代码从MS Outlook 2010中读取传入的邮件 -

public static void outLookApp_NewMailEx(string EntryIDCollection)
{                
    NameSpace _nameSpace;
    ApplicationClass _app;
    _app = new ApplicationClass();
    _nameSpace = _app.GetNamespace("MAPI");
    object o = _nameSpace.GetItemFromID(EntryIDCollection);
    MailItem Item = (MailItem)o;
    string HTMLbpdyTest = Item.HTMLBody;
    string CreationTime = Convert.ToString(Item.CreationTime);
    string strEmailSenderEmailId = Convert.ToString(Item.SenderEmailAddress);
    string strEmailSenderName = Item.SenderName;
    string Subject = Item.Subject;
} 
Run Code Online (Sandbox Code Playgroud)

如何获取发件人的邮件ID.我尝试过,Item.SenderEmailAddress但它没有给我发件人的电子邮件ID.它给了我这样的东西 -

/O=EXG5/OU=EXCHANGE ADMINISTRATIVE GROUP (FYDIBOHF23SPDLT)/CN=RECIPIENTS/CN=TEST35345
Run Code Online (Sandbox Code Playgroud)

c# outlook

5
推荐指数
1
解决办法
6025
查看次数

SenderEmailAddress属性不包含内部联系人的标准电子邮件地址

背景:

使用Outlook规则触发脚本,我希望收到来自某些高可见性客户端的所有电子邮件后立即打开.

我已成功设置一条规则,当这些客户端向我发送电子邮件时会触发该规则 它看起来像这样:

来自乔布斯和沃兹尼亚克的电子邮件

我已经成功创建了一个脚本,可以打开对电子邮件的回复,具体取决于发送者是谁.它看起来像这样:

Sub OpenEmailImmediately(oEmail As Outlook.MailItem)

    Select Case oEmail.Sender
        Case "Jobs, Steve"
            oEmail.Reply.Display
    End Select

End Sub
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但我已经使用.Sender属性实现了它.

问题:

更愿意使用发件人的电子邮件地址(与我收到的每封电子邮件相关联的唯一值)实现此目的.不幸的是,oEmail.SenderEmailAddress我希望它包含电子邮件地址,仅适用于外部客户端.

在进行故障排除时,我发现我预计oEmail.SenderEmailAddress会有类似于此的值:

steve.jobs@apple.com

对于内部电子邮件,它具有与此类似的值:

/ O = APPLE/CN = RECIPIENTS/CN = JOBSS6738

题:

有没有办法可以使用标准电子邮件地址使这个脚本适用于内部外部?

实施解决方案的代码:

使用下面的Dmitry答案,代码被修改为使用电子邮件地址:

Sub OpenEmailImmediately(oEmail As Outlook.MailItem)

    If oEmail.SenderEmailType = "EX" Then
        Select Case oEmail.Sender.GetExchangeUser().PrimarySmtpAddress
            Case "steve.jobs@apple.com"
                oEmail.Reply.Display
        End Select
    Else
        Select Case oEmail.SenderEmailAddress
            Case "tom.brady@patriots.com"
                oEmail.Reply.Display
        End Select
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

vba outlook-vba outlook-2010

4
推荐指数
1
解决办法
4942
查看次数

标签 统计

c# ×1

outlook ×1

outlook-2010 ×1

outlook-vba ×1

vba ×1