3

是否有可能将 html 添加到 vevent 的描述中。

我用一个描述生成VCALENDAR一个VEVENT。我使用Ical4j发送电子邮件ICS

这就是我尝试做的事情:

BEGIN:VCALENDAR
PRODID:-//----//Calendar 1.0//ES
VERSION:2.0
METHOD:REQUEST
CALSCALE:GREGORIAN
BEGIN:VEVENT
DTSTAMP:20101202T145512Z
UID:20101202T145513Z-project@myPc
DESCRIPTION:ALTREP="CID:content-id-here":BlaBla
LOCATION:Room 2
SUMMARY:Confirmation
DTSTART:20110115T180000
DTEND:20110115T184500
ATTENDEE;ROLE=REQ-PARTICIPANT:mailto:foo@bar.com
ORGANIZER;SENT-BY=EyeContact:mailto:foo@bar.com
END:VEVENT
END:VCALENDAR

Content-Type:text/html
Content-Id:content-id-here

   <html>
     <head>
      <title></title>
     </head>
     <body>
       <p>
         <b>Example</b>
       </p>
     </body>
   </html>

现在它只是显示 HTML 代码。

上面的日历我放在一个 MultiPart

message.addHeaderLine("method=REQUEST");
message.addHeaderLine("charset=UTF-8");
message.addHeaderLine("component=vevent");
message.setFrom(new InternetAddress(fromAddress));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(app.getPanelist().getEmail()));
message.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart iCalAttachment = new MimeBodyPart();
iCalAttachment.setDataHandler(new DataHandler(new ByteArrayDataSource(new ByteArrayInputStream(invite), "text/calendar;method=REQUEST;charset=\"UTF-8\"")));
mp.addBodyPart(iCalAttachment);
message.setContent(mp);

我错过了一部分还是不可能?

编辑 - 我尝试用 iCal4j 做什么(使用 Altrep)

ParameterList params = new ParameterList();     
URI uri = new URI("CID:content-id-here");
params.add(new AltRep(uri));
vEvent.getProperties().add(new Description(params,_content));

但是使用上面的代码,我被卡住了。有人想将 HTML 与 iCall4j 结合使用

4

2 回答 2

3

我在这个 blogspot 中找到了解决方案:

http://valermicle.blogspot.com/2009/02/i-was-searching-for-documentations-on.html

以正确的方式使用 MultiPart 解决了问题

于 2010-12-03T11:21:33.643 回答
2

查看 iCalendar 规范,您似乎需要“替代文本表示”参见RFC 5545 第 3.2.1 节

例子:

   DESCRIPTION;ALTREP="CID:part3.msg.970415T083000@example.com":
    Project XYZ Review Meeting will include the following agenda
     items: (a) Market Overview\, (b) Finances\, (c) Project Man
    agement

“ALTREP”属性参数值可能指向“text/html”内容部分。

   Content-Type:text/html
   Content-Id:<part3.msg.970415T083000@example.com>

   <html>
     <head>
      <title></title>
     </head>
     <body>
       <p>
         <b>Project XYZ Review Meeting</b> will include
         the following agenda items:
         <ol>
           <li>Market Overview</li>
           <li>Finances</li>
           <li>Project Management</li>
         </ol>
       </p>
     </body>
   </html>
于 2010-12-02T15:44:48.477 回答