开发者社区> 问答> 正文

java使用ExchangeService读取会议邮件:报错

   //ExchangeService版本  
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);  
        //用户名、密码、域  
        ExchangeCredentials credentials = new WebCredentials("账号", "密码");
        service.setCredentials(credentials);  
        //设置邮件服务器地址  
        service.setUrl(new URI("服务器地址"));  
         
   /*     CalendarFolder calendar = null;
         calendar = CalendarFolder.bind(service, WellKnownFolderName.Calendar);*/
        //创建过滤器  
/*        Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);  
        //创建过滤器条件,查询10封邮件  
        ItemView view = new ItemView(10); 
        //读取所有邮件
        FindItemsResults<Item> findResults = service.findItems(inbox.getId(), view);  
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh����ss");
        for (Item item : findResults.getItems()) {  
            EmailMessage message = EmailMessage.bind(service, item.getId());  
            //message.load();  
            System.out.println("发送人->"+message.getSender());  
            System.out.println("标题--->" + item.getSubject());
            System.out.println("邮件ID->"+item.getId());
            System.out.println("创建时间->"+format.format(item.getDateTimeCreated()));
            System.out.println("发送时间->"+format.format(item.getDateTimeSent()));
            //System.out.println();
            //System.out.println(item.getMimeContent());
              
        }*/
        
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd hh����ss");
        
        Date sta=DateUtils.getBeginOfMonth(stat);
        Date end=DateUtils.getEndOfMonth(endd);
        System.out.println("开始日期-->"+format.format(sta));
        System.out.println("结束日期-->"+format.format(end));
  
            CalendarFolder calendar = CalendarFolder.bind(service, WellKnownFolderName.Calendar, new PropertySet());
            CalendarView cView = new CalendarView(sta, end);
            cView.setPropertySet(new PropertySet(
                    AppointmentSchema.Id,
                    AppointmentSchema.Subject, 
                    AppointmentSchema.Start, 
                    AppointmentSchema.End,
                    AppointmentSchema.Location,  //会议地点
                    AppointmentSchema.Organizer,  //组织者
                    AppointmentSchema.AppointmentType  //会议类型
                    //AppointmentSchema.RequiredAttendees,  //参与者会报错
                    //AppointmentSchema.SUMMARY,
                    //AppointmentSchema.OptionalAttendees 
                    ));
            FindItemsResults<Appointment> appointments = calendar.findAppointments(cView);
            for (Appointment appointment2 : appointments.getItems()) {
                 //appointment2.getId()
                 System.out.println("ID---->"+appointment2.getId());
                 System.out.println("主题 -->" + appointment2.getSubject());  
                 System.out.println("开始时间 -->" +DateUtils.parseDate(appointment2.getStart()));
                 System.out.println("结束时间 -->" +DateUtils.parseDate(appointment2.getEnd()));
                 System.out.println("地点-->" +appointment2.getLocation());
                 System.out.println("类型-->" +appointment2.getAppointmentType());
                 System.out.println("组织者-->" +appointment2.getOrganizer().getName());
                 System.out.println();
                 //System.out.println("参会者-->" +appointment2.getRequiredAttendees());
                 //System.out.println("参与者-->"+appointment2.getOptionalAttendees());
                 //System.out.println("内容-->" +appointment2.getBody());
                 //EmailMessage message = EmailMessage.bind(service, appointment2.getId());  
                 //message.load();  
                 //System.out.println(message.getSender()); 
             }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                logger.info(e.getMessage());
            }

 

 

只读取会议邮件

问题:解开AppointmentSchema.RequiredAttendees这个注释就报错,不解开可以读取到,但是这样就没有会议参与者了,

那位大神帮忙看一下,哪里的问题,本人实在没办法了

 

 

 

 

展开
收起
kun坤 2020-06-07 16:42:04 621 0
1 条回答
写回答
取消 提交回答
  • 本人问题已经解决

    ######您好,请问你能分享一下这个demo吗?谢谢了######

    cView.setPropertySet(new PropertySet(
                        AppointmentSchema.Id,
                        AppointmentSchema.Subject, 
                        AppointmentSchema.Start, 
                        AppointmentSchema.End,
                        AppointmentSchema.Location,  //会议地点
                        AppointmentSchema.Organizer,  //组织者
                        AppointmentSchema.AppointmentType  //会议类型
                        //AppointmentSchema.RequiredAttendees,  //参与者会报错
                        //AppointmentSchema.SUMMARY,
                        //AppointmentSchema.OptionalAttendees 
                        ));

    这块代码都去掉就可以了 下面取其他参会者就不会报错了。已经试过可以

    2020-06-07 16:42:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载