RYF*_*YFN 7 exchange-server exchange-server-2007 exchangewebservices ews-managed-api
我有一个收件箱设置作为交换, hello@mycompany.com
此外,还有一个别名news@mycompany.com,因此所有发送到该news地址的电子邮件最终都会出现在hello收件箱中.
理想情况下,我希望能够使用EWS告知发送电子邮件的别名.
当我向news@mycompany.comMicrosoft Outlook 发送电子邮件并检查邮件的Internet标头时,To:标题会读取To: Hello <news@mycompany.com>我想要查看的内容.
但是,使用EWS时,当我查看邮件的ToRecipients属性时,报告的电子邮件地址始终是主SMTP地址的电子邮件地址.此外,Webservices.Data.Item 的InternetMessageHeaders属性不包含该To:属性.我似乎也看不到使用EWSEditor检查消息的所有属性的正确地址.
这个论坛帖子的答案似乎表明,
...有关邮件发送到的实际电子邮件地址的信息存储在收件人集合中,您无法在EWS中访问(在exportmessage之外)...
我将如何以编程方式执行此操作,以便找到正确的To:地址?
小智 6
这对我有用:
private static string GetToAddress()
{
ExchangeService exService = new ExchangeService();
exService.Credentials = new NetworkCredential("username", "password", "domain");
exService.Url = new Uri("https://youraddress/EWS/Exchange.asmx");
ExtendedPropertyDefinition PR_TRANSPORT_MESSAGE_HEADERS = new ExtendedPropertyDefinition(0x007D,MapiPropertyType.String);
PropertySet psPropSet = new PropertySet(BasePropertySet.FirstClassProperties)
{PR_TRANSPORT_MESSAGE_HEADERS, ItemSchema.MimeContent};
FindItemsResults<Item> fiResults = exService.FindItems(WellKnownFolderName.Inbox, new ItemView(1));
foreach (Item itItem in fiResults.Items)
{
itItem.Load(psPropSet);
Object valHeaders;
if (itItem.TryGetProperty(PR_TRANSPORT_MESSAGE_HEADERS, out valHeaders))
{
Regex regex = new Regex(@"To:.*<(.+)>");
Match match = regex.Match(valHeaders.ToString());
if (match.Groups.Count == 2)
return match.Groups[1].Value;
}
return ToAddress;
}
return "Cannot find ToAddress";
}
Run Code Online (Sandbox Code Playgroud)
代码来自:http: //social.technet.microsoft.com/Forums/en-au/exchangesvrdevelopment/thread/1e5bbde0-218e-466e-afcc-cb60bc2ba692
| 归档时间: |
|
| 查看次数: |
4745 次 |
| 最近记录: |