2013-07-31 45 views
0

在發送會議在蓮花notes.i我試圖在接受/拒絕特徵格式見邀請,而是它只是即將到來的加起來也只有日曆功能我得到了一些問題。所以,如果有人可以幫助我,這將是great.here是我的代碼會議邀請蓮花使用筆記的Java API

 Properties props = new Properties(); 
     props.put("mail.smtp.host", SMTP_HOST_NAME); 

     props.put("mail.smtp.auth", "false"); 

     Authenticator auth = new SMTPAuthenticator(); 
     Session session = Session.getInstance(props, auth); 

     session.setDebug(debug); 

     MimeMessage msg = new MimeMessage(session); 
     msg.addHeaderLine("method=REQUEST"); 
     msg.addHeaderLine("charset=UTF-8"); 
     msg.addHeaderLine("component=VEVENT"); 

     InternetAddress addressFrom = new InternetAddress(from); 
     msg.setFrom(addressFrom); 

     if (!(recipients == null)) { 

      InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
      for (int i = 0; i < recipients.length; i++) { 
       addressTo[i] = new InternetAddress(recipients[i]); 

      } 

      log.debug("setting to recipients"); 
      msg.setRecipients(Message.RecipientType.TO, addressTo); 

     } 
     if (!(recipientCC == null)) { 

      InternetAddress[] addressCC = new InternetAddress[recipientCC.length]; 
      for (int j = 0; j < recipientCC.length; j++) { 
       addressCC[j] = new InternetAddress(recipientCC[j]); 

      } 
      log.debug("setting cc recipients"); 
      msg.setRecipients(Message.RecipientType.CC, addressCC); 

     } 

     msg.setSubject(subject); 

     StringBuffer sb = new StringBuffer(); 

     StringBuffer buffer = sb 
       .append("BEGIN:VCALENDAR\n" 
         + "X-LOTUS-CHARSET:UTF-8\n" 
         + "PRODID:-//Lotus Development Corporation//NONSGML Notes 8.5//EN_C\n" 
         + "VERSION:2.0\n" 
         + "BEGIN:VEVENT\n" 
         + "CATEGORIES:Meeting\n" 
         + "STATUS:NEEDS ACTION\n" 
         + "DTSTART:20130727T184555\n" 
         + "DTEND:20130727T194555\n" 
         + "DTSTAMP:20130727T184555\n" 
         + "SEQUENCE:0\n" 
         + "EXPECT:IMMEDIATE\n" 
         + "DESCRIPTION:Steve and John to review newest proposal material\n" 
         + "SUMMARY:" 
         + subject 
         + "\n" 
         + "CLASS:PUBLIC\n" 
         + "UID:86DC83601F9625C465257BB40047FE17-Lotus_Notes_Generated\n" 
         + "X-LOTUS-UPDATE-SEQ:1\n" 
         + "X-LOTUS-UPDATE-WISL:$S:1;$L:1;$B:1;$R:1;$E:1;$W:1;$O:1;$M:1\n" 
         + "X-LOTUS-NOTESVERSION:2\n" 
         + "X-LOTUS-NOTICETYPE:I\n" 
         + "X-LOTUS-APPTTYPE:3\n" 
         + "X-LOTUS-CHILD-UID:86DC83601F9625C465257BB40047FE17\n" 
         + "END:VEVENT\n" + "END:VCALENDAR\n"); 

     // Create the message part 
     BodyPart messageBodyPart = new MimeBodyPart(); 

     // Fill the message 
     messageBodyPart.setHeader("Content-Class", 
       "urn:content-classes:calendarmessage"); 
     messageBodyPart.setHeader("Content-ID", "calendar_message"); 
     messageBodyPart 
       .setDataHandler(new DataHandler(new ByteArrayDataSource(
         buffer.toString(), "text/calendar")));// very 
                   // important 
     // Create a Multipart 
     Multipart multipart = new MimeMultipart(); 

     // Add part one 
     multipart.addBodyPart(messageBodyPart); 

     // Put parts in message 

     msg.setContent(multipart); 
     log.debug("Sending mail"); 
     Transport.send(msg); 

回答

2

您需要,而不是創建一個公共事件的羣體性事件,如果你希望能夠作出迴應。你可以閱讀關於這個in the RFC 2446的一切。

它是強制性的,以限定用於與會者一組事件的工作(見上文文檔中第4.2章)。這可能如下所示:

ATTENDEE;ROLE=CHAIR;PARTSTAT=ACCEPTED;CN=BIG A:Mailto:[email protected] 
ATTENDEE;RSVP=TRUE;TYPE=INDIVIDUAL;CN=B:Mailto:[email protected] 

RSVP = TRUE讓B響應。

如果你需要確保,即任命不要弄混,生成每個事件唯一的UID,如果有新的變化重用。否則,您將無法發送更新。

+0

託斯滕,正如你所說,以創建一個組甚至不是一個公共事件,我已經做了這種方式,但它仍然給輸出before.Maybe一樣,那是因爲我使用msg.setRecipients發送郵件到各個人的我是否也應該刪除它。如果是的話,那麼我將如何發送郵件給個人。 – Tushar

+0

爲什麼不發送一個本地(Lotus Notes或任何其他郵件客戶端)邀請到一個Web客戶端(gmail,gmx,其他東西),只需檢查文件中的差異......您如何發送郵件不應該與邀請有任何相關性,除了例如Gmail不會讓你接受或拒絕,如果邀請的步驟來自你自己的地址...... –

+0

感謝託,但我找到這個query.Actually Lotus Notes的答案問一個名爲「X-LOTUS-播出的」屬性,該屬性是默認爲true,所以如果我們將其設爲false,則邀請作爲接受/拒絕會議邀請。 3年後的 – Tushar