EWS Managed API 2.0 设置获取邮件自动回复功能

摘要

最近要在邮件提醒功能中添加,自动回复的功能。在移动端获取用户在outlook上是否开启了自动回复功能,如果用户在outlook上开启了自动回复功能, 获取用户自动回复的内容,如果没有开启,用户可以在移动端开启自动回复并且可以设置自动回复的内容,当然,用户也可以在移动端进行关闭。

一个例子

获取用户自动回复的信息。

    class Program
    {
        static ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
        static void Main(string[] args)
        {
            service.Url = new Uri("https://xxxxx/exchange.asmx");
            service.Credentials = new NetworkCredential("username", "userpwd", "domain");
            var oofSettiing = service.GetUserOofSettings("username@xxxx.com");           
            if (oofSettiing != null)
            {
                Console.WriteLine(oofSettiing.Duration.StartTime.ToString());
                Console.WriteLine(oofSettiing.Duration.EndTime.ToString());
                Console.WriteLine(oofSettiing.State.ToString());
                Console.WriteLine(oofSettiing.ExternalReply.Message.ToString());
                string msg = oofSettiing.ExternalReply.Message.ToString();
                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(msg);
                HtmlNodeCollection pLists = doc.DocumentNode.SelectNodes(".//p");
                if (pLists != null && pLists.Count > 0)
                {
                    foreach (var item in pLists)
                    {
                        Console.WriteLine(item.InnerText);
                    }
                }
            }
            Console.Read();
        }
    }

注意获取的自动回复内容为html标签的,所以需要过滤,这里使用HtmlAgilityPack组件,对html进行解析。

如图所示

设置自动回复

  var myOOF = new OofSettings();
            // Set the OOF status to be a scheduled time period.
            myOOF.State = OofState.Scheduled;

            // Select the time period during which to send OOF messages.
            myOOF.Duration = new TimeWindow(DateTime.Now.AddDays(4), DateTime.Now.AddDays(5));

            // Select the external audience that will receive OOF messages.
            myOOF.ExternalAudience = OofExternalAudience.All;

            // Set the OOF message for your internal audience.
            myOOF.InternalReply = new OofReply("I'm out of office. I'll be back tomorrow. Thanks!");

            // Set the OOF message for your external audience.
            myOOF.ExternalReply = new OofReply("I'm out of the office but will reply to emails when I return. Thanks!");
            service.SetUserOofSettings("user@xxxx.com", myOOF);

资料

https://msdn.microsoft.com/en-us/library/hh532556(EXCHG.80).aspx

posted @ 2017-03-31 14:27  wolfy  阅读(725)  评论(0编辑  收藏  举报