【问题标题】:Retrieve Alias From SharedMailbox从共享邮箱中检索别名
【发布时间】:2019-12-19 21:12:17
【问题描述】:

我想检索已通过电子邮件发送到共享邮箱的别名电子邮件,但 Exchange 使用共享邮箱的主要电子邮件地址覆盖了“收件人”

示例 - “aa@alias.co.uk” 别名通过电子邮件发送到共享邮箱。我想找回“aa@alias.co.uk”的电子邮件

PrimaryEmail - aa@primarydomain.co.uk

别名电子邮件 - aa@alias.co.uk

我已尝试访问电子邮件的标题,但没有成功

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Exchange.WebServices.Data;

namespace readSharedMailbox
{
    class Program
    {
        static void Main(string[] args)
        {
            ExchangeService _service;
            try
            {
                Console.WriteLine("Registering Exchange connection");
                _service = new ExchangeService
                {
                    Credentials = new WebCredentials("*******", "********")
                };
            }
            catch
            {
                Console.WriteLine("new ExchangeService failed. Press enter to exit:");
                return;
            }
            // Office365 webservice URL
            _service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
            try
            {
                Console.WriteLine("Reading mail");
                FindItemsResults<Item> result = _service.FindItems(WellKnownFolderName.Inbox, new ItemView(1));

                foreach (Item item in result)
                {
                    EmailMessage message = EmailMessage.Bind(_service, item.Id);
                    Console.WriteLine("Reading items");
                    Console.WriteLine(message.ToRecipients[0].Address.ToString());
                    /* Reading the Header

                    foreach (var property in message.InternetMessageHeaders)
                    {
                        Console.WriteLine(property.Name);
                        Console.WriteLine(property.Value);
                    }
                    */
                }
                Console.WriteLine("Exiting");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("An error has occured. \n:" + e.Message);
            }
        }
    }

}

【问题讨论】:

    标签: c# exchangewebservices


    【解决方案1】:

    Exchange 始终将发件人和收件人解析为其 GAL 对象 - 您不再拥有一次性 SMTP 条目,而是 GAL 对象。检索 PR_TRANSPORT_MESSAGE_HEADERS 属性(DASL 名称 http://schemas.microsoft.com/mapi/proptag/0x007D001F)并手动解析 To/CC 标头是查看邮件发送到的原始 SMTP 地址的唯一方法。但即便如此,我也看到过 MIME 标头被 E​​xchange 破坏并且不再包含 SMTP 地址,而只是显示名称的情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-15
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      相关资源
      最近更新 更多