无法使用icalendar将会议请求从Lotus Notes发送到Microsoft Exchange [英] unable to send meeting request from lotus notes to microsoft exchange using icalendar

查看:106
本文介绍了无法使用icalendar将会议请求从Lotus Notes发送到Microsoft Exchange的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的代码.请建议进行必要的更改,以便从Lotus发送会议请求以进行交换.我收到一封空白邮件,但Lotus和exchange都没有内容.除了.ics文件之外,是否还需要将详细信息直接添加到Lotus文档中?

here's my code. pls suggest the necessary changes to send meeting requests from lotus to exchange. I am getting a blank mail wid no content in both lotus and exchange.do i need to add the details directly into the lotus document , in addition to the .ics file?

public class ICalendarSample {

public static void main(String[] args) {

// Creating a new calendar
Calendar calendar = new Calendar();
calendar.getProperties().add(new ProdId("-//Lotus Development Corporation//NONSGML Notes 8.5.1//EN_S"));
calendar.getProperties().add(Version.VERSION_2_0);

// start time
java.util.Calendar startCal = java.util.Calendar.getInstance();
startCal.set(2013, 05, 11, 15, 00);

// end time
java.util.Calendar endCal = java.util.Calendar.getInstance();
endCal.set(2013, 05, 11, 15, 30);

SimpleDateFormat sdFormat = new SimpleDateFormat("yyyyMMdd'T'hhmmss'Z'");
String strDate = sdFormat.format(startCal.getTime());

net.fortuna.ical4j.model.Date startDt = null;
try {
startDt = new net.fortuna.ical4j.model.Date(strDate);

long diff = endCal.getTimeInMillis() - startCal.getTimeInMillis();
int min = (int) (diff / (1000 * 60));
Dur dur = new Dur(0, 0, min, 0);

// Creating a meeting event
VEvent meeting = new VEvent(startDt, dur, "Meeting Subject");
meeting.getProperties().add(new Uid("nitin1234"));
meeting.getProperties().add(new Organizer());
meeting.getProperties().getProperty(Property.ORGANIZER)
.setValue("xx");
meeting.getProperties().add(new Attendee());
meeting.getProperties().getProperty(Property.ATTENDEE)
.setValue("xx");

String calFile = "TestCalendar.ics";
FileOutputStream fout = null;
fout = new FileOutputStream(calFile);
CalendarOutputter outputter = new CalendarOutputter();
outputter.setValidating(false);
outputter.output(calendar, fout);

System.out.println(meeting);
File f;
f = new File("TestCalendar.ics");
f.createNewFile();
FileWriter fstream = new FileWriter("TestCalendar.ics", true);
BufferedWriter fbw = new BufferedWriter(fstream);
fbw.write(meeting.toString());
fbw.close();

Session s;

s = NotesFactory.createSessionWithIOR(Strings.IOR, "xx","xx");
Database db = s.getDatabase("xxx", "xxx");
Document doc = db.createDocument();
s.setConvertMime(false);
doc.replaceItemValue("Form", "Memo");
MIMEEntity body = doc.createMIMEEntity("body");
MIMEHeader header = body.createHeader("Content-class");
header.setHeaderVal("urn:content-classes:calendarmessage");
header = body.createHeader("Content-Type");
header.setHeaderValAndParams("text/calendar; Method=Request; name=\"TestCalendar.ics\"");
header = body.createHeader("Content-Transfer-Encoding");
header.setHeaderVal("8bit");
s.setConvertMime(true);
doc.save();
doc.send("xxx");

} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (NotesException e) {
e.printStackTrace();
} catch (ValidationException e) {
e.printStackTrace();
}
}
}

推荐答案

在有参数时使用setHeaderValAndParams:

header = body.createHeader("Content-Type");
header.setHeaderValAndParams("text/calendar; method=REQUEST; name=\"meeting.ics\"");
header = body.createHeader("Content-Transfer-Encoding");
header.setHeaderVal("8bit");

以下是添加文件的方法(在LotusScript中):

Here is how to add a file (this is in LotusScript):

是可以使用AJAX将图像文件上传到Domino服务器吗?

您的情况不需要Base64编码.

No Base64 encoding needed in your case.

这篇关于无法使用icalendar将会议请求从Lotus Notes发送到Microsoft Exchange的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆