首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SenderEmailAddress检查收到的电子邮件?

如何使用SenderEmailAddress检查收到的电子邮件?
EN

Stack Overflow用户
提问于 2018-11-01 09:59:18
回答 2查看 147关注 0票数 0

我有一个循环,以检查收到的电子邮件从乔多伊与特定的主题。该循环工作并从Joe保存附件。

代码语言:javascript
复制
If (Msg.SenderName = "Doe, Joe") And _
        (Msg.Subject = "Test: Smartsheet") And _
        (Msg.Attachments.Count >= 1) Then

我想用SenderEmailAddress代替SenderName。

代码语言:javascript
复制
I tested below codes:

    If (Msg.SenderEmailAddress = "test@noreplay.com") And _
            (Msg.Subject = "Test: Smartsheet") And _
            (Msg.Attachments.Count >= 1) Then

代码语言:javascript
复制
    If (SenderEmailAddress = "test@noreplay.com") And _
            (Msg.Subject = "Test: Smartsheet") And _
            (Msg.Attachments.Count >= 1) Then
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-01 11:54:13

第二段新代码肯定不能工作,因为SenderEmailAddressMsg的一个属性。

要使Msg.SenderEmailAddress = "test@noreplay.com"返回True,必须有一个完全匹配的。"Test@noreplay.com“或"test@NoReplay.com”或任何其他此类变体都不会返回True

建议1:

还原原始代码,但添加一条附加语句

代码语言:javascript
复制
If (Msg.SenderName = "Doe, Joe") And _
   (Msg.Subject = "Test: Smartsheet") And _
   (Msg.Attachments.Count >= 1) Then
  Debug.Print Msg.SenderEmailAddress

运行宏后,立即窗口将包含Joe电子邮件的发件人电子邮件地址列表,以便您可以检查它们是否与您预期的一样。

建议2:

使比较大小写不敏感:

代码语言:javascript
复制
If (LCase(Msg.SenderEmailAddress) = "test@noreplay.com") And _
        (Msg.Subject = "Test: Smartsheet") And _
        (Msg.Attachments.Count >= 1) Then
票数 1
EN

Stack Overflow用户

发布于 2018-11-01 16:26:18

请记住,MailItem.SenderEmailAddressMailItem.SenderName是Outlook对象模型中的只读属性。还请注意,在MAPI级别上,有大约六个与发件人相关的属性,最重要的是发送方条目id (这是用于答复的)。SentRepresentingXYZ属性也是如此。我不认为MailItem.PorpertyAccessor.SetProperty会让您设置所有这些属性。

如果使用赎罪 (我是它的作者)是一个选项,它允许设置所有与发送方相关的属性。

代码语言:javascript
复制
  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT
  set rdoMsg = Session.GetMessageFormID(Msg.EntryID)
  vSenderEntryId = Session.AddressBook.CreateOneOffEntryID("Joe The Sender", "SMTP", "joe@domain.demo", false, true)
  set vSender = Session.AddressBook.GetAddressEntryFromID(vSenderEntryId)
  rdoMsg.Sender = vSender
  rdoMsg.SentOnBehalfOf = vSender
  Msg.Save
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53098929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档