我有一个循环来检查来自Joe Doe的特定主题的传入电子邮件。该循环有效并保存Joe Doe的附件。
If (Msg.SenderName = "Doe, Joe") And _
(Msg.Subject = "Test: Smartsheet") And _
(Msg.Attachments.Count >= 1) Then
我想使用SenderEmailAddress代替SenderName。
I tested below codes:
If (Msg.SenderEmailAddress = "test@noreplay.com") And _
(Msg.Subject = "Test: Smartsheet") And _
(Msg.Attachments.Count >= 1) Then
和
If (SenderEmailAddress = "test@noreplay.com") And _
(Msg.Subject = "Test: Smartsheet") And _
(Msg.Attachments.Count >= 1) Then
答案 0 :(得分:1)
由于SenderEmailAddress
是Msg
的属性,因此第二段新代码肯定无法工作。
要让Msg.SenderEmailAddress = "test@noreplay.com"
返回True
,必须有完全匹配的内容。 “ Test@noreplay.com”或“ test@NoReplay.com”或任何其他此类变体都不会返回True
。
建议1:
还原原始代码,但添加其他语句
If (Msg.SenderName = "Doe, Joe") And _
(Msg.Subject = "Test: Smartsheet") And _
(Msg.Attachments.Count >= 1) Then
Debug.Print Msg.SenderEmailAddress
运行宏后,“立即窗口”将包含Joe Doe电子邮件的发件人电子邮件地址列表,以便您可以按预期检查它们。
建议2:
使比较不区分大小写,以便:
If (LCase(Msg.SenderEmailAddress) = "test@noreplay.com") And _
(Msg.Subject = "Test: Smartsheet") And _
(Msg.Attachments.Count >= 1) Then
答案 1 :(得分:0)
请记住,Phone_number
和MailItem.SenderEmailAddress
是Outlook对象模型中的只读属性。还要注意,在MAPI级别上,有大约六种与发件人相关的属性,最重要的是发件人条目ID(即用于回复的属性)。 SentRepresentingXYZ属性的同上。
我认为MailItem.SenderName
不会让您设置所有这些属性。
如果使用Redemption,则可以设置所有与发件人相关的属性。
MailItem.PorpertyAccessor.SetProperty