• 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

  • 相关阅读:
    myisamchk命令修复表操作
    CentOS下的yum upgrade和yum update区别
    CentOS 6.9/7通过yum安装指定版本的MySQL
    Linux下Shell去除空行的方法
    Linux下环境变量设置技巧
    交互设计师如何做运营需求-以网易严选邀请新人功能设计为例
    对应用启动时间的关注和获取
    快速发现并解决maven依赖传递冲突
    mock测试方法及实践改进
    网易杭研易盾实习心得(4)
  • 原文地址:https://www.cnblogs.com/wolf-sun/p/6650128.html
Copyright © 2020-2023  润新知