Tôi đang cố gắng gửi iCal đến một triển vọng, sử dụng Thư viện Thư viện Java, tôi đã đọc Question và tôi đã có một số mã mẫuCách gửi yêu cầu họp iCal bằng cách sử dụng Java Mail và nhận được phản hồi
public class SendMeetingRequest {
String host = "" ;
String port = "" ;
String sender = "" ;
public static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd'T'HHmm'00'") ;
public static SimpleDateFormat dateParser = new SimpleDateFormat("dd-MM-yyyy HH:mm") ;
public static void main(String[] args) throws Exception {
SendMeetingRequest sender = new SendMeetingRequest() ;
sender.sendInvitation(“LogicaCMG Inschrijf Site”
, new String[] { “robert<dot>willems<dot>of<dot>brilman<at>logicacmg<dot>com”
}
, “Outlook Meeting Request Using JavaMail”
, dateParser.parse(“28-08-2006 18:00″)
, dateParser.parse(“28-08-2006 21:00″)
, “LIS-42″
, “Bar op scheveningen”
, “<font color=\”Red\”>Aanwezigheid verplicht!</font><br>We gaan lekker een biertje drinken met z’n allen.”
) ;
}
void sendInvitation(String organizer
, String[] to
, String subject
, Date start
, Date end
, String invitationId
, String location
, String description
) throws Exception {
try {
Properties prop = new Properties();
prop.put(”mail.smtp.port”, port);
prop.put(”mail.smtp.host”, host);
Session session = Session.getDefaultInstance(prop);
session.setDebug(true);
// Define message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(sender));
// Set TO
if(to != null && (to.length > 0)) {
InternetAddress[] address = new InternetAddress[ to.length ] ;
for(int i = 0; i < to.length; i++) {
address[ i ] = new InternetAddress(to[ i ]) ;
}
message.setRecipients(Message.RecipientType.TO, address) ;
}
// Set subject
message.setSubject(subject);
// Create iCalendar message
StringBuffer messageText = new StringBuffer();
messageText.append("BEGIN:VCALENDAR\n" +
"PRODID:-//Microsoft Corporation//Outlook 9.0 MIMEDIR//EN\n" +
"VERSION:2.0\n" +
"METHOD:REQUEST\n" +
"BEGIN:VEVENT\n" +
"ORGANIZER:MAILTO:") ;
messageText.append(organizer) ;
messageText.append("\n" +
"DTSTART:");
messageText.append(dateFormat.format(start)) ;
messageText.append("\n" +
"DTEND:") ;
messageText.append(dateFormat.format(end)) ;
messageText.append("\n" +
"LOCATION:") ;
messageText.append(location) ;
messageText.append("\n" +
"UID:") ;
messageText.append(invitationId) ;
messageText.append("\n" +
"DTSTAMP:") ;
messageText.append(dateFormat.format(new java.util.Date())) ;
messageText.append("\n" +
"DESCRIPTION;ALTREP=\"CID:<eventDescriptionHTML>\”") ;
messageText.append(“\n” +
”BEGIN:VALARM\n” +
”TRIGGER:-PT15M\n” +
”ACTION:DISPLAY\n” +
”DESCRIPTION:Reminder\n” +
”END:VALARM\n” +
”END:VEVENT\n” +
”END:VCALENDAR”
) ;
Multipart mp = new MimeMultipart();
MimeBodyPart meetingPart = new MimeBodyPart() ;
meetingPart.setDataHandler(new DataHandler(new StringDataSource(messageText.toString(), “text/calendar”, “meetingRequest”))) ;
mp.addBodyPart(meetingPart) ;
MimeBodyPart descriptionPart = new MimeBodyPart() ;
descriptionPart.setDataHandler(new DataHandler(new StringDataSource(description, “text/html”, “eventDescription”))) ;
descriptionPart.setContentID(“<eventDescriptionHTML>”) ;
mp.addBodyPart(descriptionPart) ;
message.setContent(mp) ;
// send message
Transport.send(message);
} catch (MessagingException me) {
me.printStackTrace();
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static class StringDataSource implements DataSource {
private String contents ;
private String mimetype ;
private String name ;
public StringDataSource(String contents
, String mimetype
, String name
) {
this.contents = contents ;
this.mimetype = mimetype ;
this.name = name ;
}
public String getContentType() {
return(mimetype) ;
}
public String getName() {
return(name) ;
}
public InputStream getInputStream() {
return(new StringBufferInputStream(contents)) ;
}
public OutputStream getOutputStream() {
throw new IllegalAccessError(“This datasource cannot be written to”) ;
}
} }
Nhưng nó được gửi dưới dạng đính kèm đối với triển vọng năm 2007 và triển vọng năm 2003, và thậm chí nếu tôi nhấp vào tập tin đính kèm để xem và chấp nhận, tôi không nhận được trả lời, đó là mục đích của ứng dụng có một chức năng tương tự như triển vọng.
Có bất kỳ thủ tục nào tôi cần biết hay là ID lời mời khiến mọi thứ trở nên khó khăn?
Hi Amr, tôi đang làm việc với cùng một loại dự án cho học tập của mình, tôi cần phải nâng cao cảnh báo và phần còn lại của cuộc họp, tôi đang sử dụng java để phát triển tất cả thiết kế của mình là tối đa đánh dấu triển vọng là khó khăn để làm như vậy bạn có thể xin vui lòng giúp tôi ra trong việc này! – 09Q71AO534
Hi @ user2561626 Nếu bạn sử dụng mã ở đây bạn sẽ có thể nâng cao cảnh báo và nhắc nhở chỉ là chức năng cho Outlook chính nó, do đó, không có kiểm soát nó. –
tôi đã tải xuống ical4j, tôi nên thay đổi bất kỳ phương pháp nào trong đó, để làm cho mã này hoạt động ở đây, để tăng các cảnh báo và phần còn lại. – 09Q71AO534