我们的C#应用程序使用System.Net.Mail.SmtpClient
发送电子邮件邀请。我们曾经以一种在Microsoft Outlook中看起来合适的方式使用HTML格式化它们。现在他们也必须在IBM Notes中工作。
然而,Notes似乎拒绝任何在邀请中设置任何样式的尝试。它从HTML中提取文本部分,并将它们作为无格式文本放入其描述字段中。
我们的实施使用text/calendar
ALT-REP
引用和两个替代视图:
ContentType contentType = new ContentType("text/html; charset=UTF-8");
AlternateView alternateView = AlternateView.CreateAlternateViewFromString(descriptionContent, contentType);
message.AlternateViews.Add(alternateView);
contentType = new ContentType("text/calendar; method=REQUEST; charset=UTF-8");
contentType.Parameters.Add("Content-Class", "urn:content-classes:calendarmessage");
alternateView = AlternateView.CreateAlternateViewFromString(invitationContent, contentType);
message.AlternateViews.Add(alternateView);
descriptionContent
是HTML格式的内容。
invitationContent
:
StringBuilder builder = new StringBuilder();
builder.Append("BEGIN:VCALENDAR\r\n");
builder.Append("PRODID:-//Microsoft Corporation//Outlook 10.0 MIMEDIR//EN\r\n");
builder.Append("VERSION:2.0\r\n");
builder.Append("METHOD:REQUEST\r\n");
builder.Append("BEGIN:VEVENT\r\n");
builder.Append("ORGANIZER;CN=\"The Full Name\":MAILTO:the-to-address@example.org\r\n");
builder.Append("SUMMARY;CHARSET=iso-8859-1;LANGUAGE=de-ch:Some Title\r\n");
builder.Append("DTSTART:" + String.Format("{0:yyyyMMdd'T'HHmm'00'}", invitationStart) + "\r\n");
builder.Append("DTEND:" + String.Format("{0:yyyyMMdd'T'HHmm'00'}", invitationEnd) + "\r\n");
builder.Append("LOCATION;CHARSET=iso-8859-1:Some address\r\n");
builder.Append("UID:" + Guid.NewGuid().ToString().ToUpper() + "\r\n");
builder.Append("DTSTAMP:" + String.Format("{0:yyyyMMdd'T'HHmm'00'}", DateUtil.GetToday()) + "\r\n");
builder.Append("DESCRIPTION;ALTREP=\"CID:<eventDescriptionHTML>\"\r\n");
builder.Append("BEGIN:VALARM\r\n");
builder.Append("TRIGGER:-PT15M\r\n");
builder.Append("ACTION:DISPLAY\r\n");
builder.Append("DESCRIPTION:Reminder\r\n");
builder.Append("END:VALARM\r\n");
builder.Append("END:VEVENT\r\n");
builder.Append("END:VCALENDAR");
例如,使用descriptionContent
...
<h1>A title</h1>
<h2>A subtitle</h2>
<p>A paragraph</p>
...
这将在MS Outlook中显示,但在Notes中,邀请说明包含一个简单的“A title A subtitle A paragraph”文本。
答案 0 :(得分:-1)
您可以从Notes客户端的Notes日历中将Notes日历条目导出为ICS格式。
使用您想要的说明创建邀请,导出并检查.ics以查看您需要添加到代码中的内容