我正在使用iCal4j发送日历邀请。我可以向用户发送邀请。但当用户接受邀请时,我不会收到回复邮件。
net.fortuna.ical4j.model.Calendar cal = new net.fortuna.ical4j.model.Calendar();
cal.getProperties().add(new ProdId("//Google Inc//Google Calendar 70.9054//EN"));
cal.getProperties().add(Version.VERSION_2_0);
cal.getProperties().add(CalScale.GREGORIAN);
System.setProperty(CompatibilityHints.KEY_OUTLOOK_COMPATIBILITY, "true");
java.util.Calendar c1 = java.util.Calendar.getInstance();
c1.add(java.util.Calendar.HOUR, 1);
c1.add(java.util.Calendar.DATE, 1);
DateTime start = new DateTime(c1.getTime());
c1.add(java.util.Calendar.HOUR, 1);
DateTime end = new DateTime(c1.getTime());
VEvent vEvent = new VEvent();
vEvent.getProperties().add(new DtStart(start));
vEvent.getProperties().add(new DtEnd(end));
vEvent.getProperties().add(Clazz.PUBLIC);
Organizer organizer = new Organizer(URI.create("mailto:mail@gmail.com"));
organizer.getParameters().add(new Cn("mail@gmail.com"));
vEvent.getProperties().add(organizer);
UidGenerator uid = new RandomUidGenerator();
vEvent.getProperties().add(uid.generateUid());
Attendee attendee1 = new Attendee(URI.create("mailto:mail@yahoo.com"));
attendee1.getParameters().add(CuType.INDIVIDUAL);
attendee1.getParameters().add(Role.REQ_PARTICIPANT);
attendee1.getParameters().add(PartStat.NEEDS_ACTION);
attendee1.getParameters().add(Rsvp.TRUE);
attendee1.getParameters().add(new Cn("mail@yahoo.com"));
vEvent.getProperties().add(attendee1);
vEvent.getProperties().add(new Description("some description");
vEvent.getProperties().add(new Location("location"));
vEvent.getProperties().add(Status.VEVENT_CONFIRMED);
vEvent.getProperties().add(new Summary("Invite summery"));
vEvent.getProperties().add(Transp.OPAQUE);
有什么建议吗???
发送日历邀请时,需要包含指示,告诉客户端软件(如Outlook等(应如何处理事件。这是通过METHOD属性完成的:
http://ical4j.github.io/docs/ical4j/api/3.0.26/net/fortuna/ical4j/model/property/Method.html
通常,METHOD:PUBLISH
用于不需要响应的事件,或者METHOD:REQUEST
用于需要接受/拒绝响应的事件。
因此,如果您将METHOD:REQUEST
属性添加到邀请中,您应该会得到响应。