我的目标是向现有MailItem mailItem
添加/删除收件人。
我添加了newEmailAdress(" some.one@corp.com"):
mailItem.To += "some.one@corp.com";
然后我解析收件人,使用户看起来更好(比如显示内部联系人的Skype状态)。
mailItem.Recipients.ResolveAll();
它适用于其中一半。对于某些人,如果我查看mailItem.To
,则电子邮件字符串已更改为联系人姓名(" Some One"),并且联系人不在mailItem.Recipients
中。但它们显示为已解决(例如,它们具有Skype状态,或者具有(联系)外部状态)
因此,对于一半的收件人来说,它已经以某种方式解决了一半。我无法找到任何逻辑,一些内部联系人工作,其他人不会,外部收件人也一样......
上下文:
要添加/删除收件人,
我使用简单mailItem.To
处理直接添加到mailItem.To.Contains(newEmailAdress)
的电子邮件,以避免重复,并使用mailItem.Replace(newEmailAdress, "")
进行删除。工作良好。
然后,我想要处理已经解决或直接作为收件人输入的联系人。我浏览mailItem.Recipients
,使用PropertyAcessor
转换电子邮件地址,然后仅与newMailAdress
进行比较。这就是我注意到有些人已经解决了一半。
答案 0 :(得分:0)
To / CC / BCC属性可能包含也可能不包含电子邮件地址 - 您应该假设它们只包含名称。
此外,多个名称必须用“;”分隔:
mailItem.To += ";some.one@corp.com";
话虽如此,请使用MailItem.Recipients
集合,尤其是Recipients.Add
方法。您可以遍历该集合中的所有项目,并为每个收件人检查Recipient.
名称和Recipient.Ad
服饰属性。