我有一个应用程序,它正在创建类似于以下内容的ICS:
BEGIN:VCALENDAR
VERSION:2.0
METHOD:REQUEST
BEGIN:VEVENT
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:test1234@gmail.com
ORGANIZER:MAILTO:test1234@org.com
DTSTART:20100803T190000Z
DTEND:20100803T200000Z
LOCATION:Go to http://100.200.0.55/Login/ParticipantLogIn.asp and enter
Conference ID: 0000
SEQUENCE:0
UID:352C75A6-0117-4B3A-AFE6-7B18649CD45A
DTSTAMP:20100803T184455Z
DESCRIPTION:TO ACCESS THE WEB CONFERENCE:\n\n Click on the link bel
ow:\n
SUMMARY:Test User's Conference
PRIORITY:5
CLASS:PUBLIC
BEGIN:VALARM
TRIGGER:-PT15M
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR
当发送到Gmail帐户时,它将作为ICS文件发送,一切正确。发送到Outlook 2003或2007时,它作为.msg文件附加并且是二进制文件。正在使用的服务器是Windows Server 2008.我已将ics mime类型设置为 text / calendar 。添加它的过程只是在磁盘上创建一个tmp文件并将其作为附件添加,然后使用CDO发送。有谁知道Outlook将其作为.msg添加的任何原因?
此外,我们使用相同的Exchange服务器,它可以在Windows Server 2003中正常运行。
使用附件的网络跟踪进行更新
2003
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.4073
Content-Type: application/octet-stream;
name="meeting.ics"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="meeting.ics"
2008
X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18197
Content-Type: text/calendar;
name="meeting.ics"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
filename="meeting.ics"
两者都有四个消息部分:
在2003版本中,一个是应用程序/八位字节流,一个是日历/文本。在2008年,他们都是日历/文本。
答案 0 :(得分:3)
这看起来是Windows Server 2008上的CDO问题。对每台服务器上的网络流量进行跟踪显示传递的消息存在巨大差异。
似乎由于某种原因,AddAttachment方法没有使用与2003年相同的MIME。手动添加附件并控制MIME将修复它。
答案 1 :(得分:2)
电子邮件中可能缺少TNEF数据。如果是这种情况,则电子邮件将呈现为纯文本。您应该检查TNEF设置,看看它是否会从电子邮件中删除。
签入ESM以查看删除TNEF的选项是否为ON。
来自MSDN:
除了接收客户端, 邮件服务器并不罕见 从中删除TNEF信息 邮件传递它们。 如果启用了删除TNEF的服务器选项,则客户端将始终收到 消息的纯文本版本。 Microsoft Exchange Server是一个 邮件服务器应用程序的示例 可以选择删除TNEF 来自消息。
答案 2 :(得分:2)
您是将VCALENDAR添加为主要(且仅限)MIME部分还是其中一个附件? 有很大的不同。