java - 发送winmail格式到Outlook并触发Confirmitaion(email和ics不要分开)

标签 java outlook icalendar

我想知道是什么让 Outlook 通过以下方式响应从另一个 Outlook 发送的邀请:

AppointmentSentFromOutlook

如果从屏幕截图中看不清楚,在这种情况下,Outlook 会要求我确认我的出席情况。

我有一个发送 ICAL 文件的程序。 ICAL 文件已作为附件正确发送。 该文件如下所示:

我有一个发送 ICAL 文件的程序。 ICAL 文件已作为附件正确发送。

BEGIN:VCALENDAR
PRODID:TODO
VERSION:2.0
METHOD:PUBLISH
BEGIN:VEVENT
CLASS:PUBLIC
DESCRIPTION:Parameter: Value\nAuftrags-Nr.: \nVorschrift: 12\nZyklus: 12\nKommentar_1: \nKommentar_2: \nKommentar_3: 12\nPr?fstand: TODO\nV-Nr.: \nSMKL: 2\nDatum-Startzeit: TODO\nModel-Typschluessel: TODO\nCoastDowm: TODO\nBerechnen:
+TODO\nKommentar_4: TODO\nKommentar_5: TODO\nSchaltpunkttabelle: TODO\nAdd Test: TODO\nAdd Messtechnik: TODO\nKonfiguration MT: TODO\nAnwesenheit SB: TODO\n
ATTENDEE;CN=Pr?fstand; RSVP=TRUE:oz@domain.com
DTSTART:20130123T131951Z
DTEND:20130123T151951Z
DTSTAMP:20130123T131956Z
LOCATION:12
ORGANIZER;CN=wurst:MAILTO:wurst@wurstkeuche.de
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:Abgastest
TRANSP:OPAQUE
UID:ac4fc017-0944-4f9f-bfd1-3ffc07b486a9
X-MICROSOFT-CDO-BUSYSTATUS:FREE
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:TRUE
X-MS-OLK-ALLOWEXTERNCHECK:TRUE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
BEGIN:VALARM
TRIGGER:-PT15
ACTION:DISPLAY
DESCRIPTION:Reminder
END:VALARM
END:VEVENT
END:VCALENDAR

在 Outlook 中收到时,它被视为附件:

Appointment

我查看了电子邮件属性并设法发现了以下差异: Outlook 以某个二进制文件发送约会:

Content-Type: application/ms-tnef; name="winmail.dat" 
Content-Transfer-Encoding: binary

我的程序发送:

Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

当我将“正确”的约会电子邮件(带有“winmail.dat”类型)从 Outlook 转发给自己并用 mutt 打开它时,我看到以下内容,该电子邮件由几部分组成:

  I     1 <no description>              [multipa/alternativ, 7bit, 8.1K]
  I     2 ├─><no description>           [text/plain, base64, utf-8, 1.4K]
  I     3 ├─><no description>           [text/html, base64, utf-8, 2.8K]
  I     4 └─><no description>           [text/calendar, base64, utf-8, 3.3K]

如果我将同一封邮件转发到 mutt,然后再次返回 Outlook,它看起来像这样:

backFromMutt

邮件内容为:

Content-Type: multipart/mixed; boundary="bKyqfOwhbdpXa4YI"
Content-Disposition: inline

因此,我怀疑我想要实现的行为是在 winmail.dat 内部进行控制,而不是通过 ICS 文件内的参数进行控制。

我还必须补充一点,我的代码是用JAVA编写的,并且正在阅读winmail.dat我找到了JAVA library that creates winmail.dat 。但我不知道二进制文件中有什么属性 格式将触发此行为。

我的第一个问题是:

  • 我可以仅使用短信来模拟此行为吗?

第二个问题是:

  • 如果您无法(可能无法)以纯文本方式模拟此行为,是否有人知道以二进制格式设置的正确属性?

最佳答案

如果您以 MIME 消息的形式发送邀请,内容类型为“text/calendar; method=REQUEST”,Outlook 将非常高兴。
没有理由使用 winmail.dat。

关于java - 发送winmail格式到Outlook并触发Confirmitaion(email和ics不要分开),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14481740/

相关文章:

javascript - 从移动平台上的浏览器中向日历添加事件

python - 适用于 Python 的 iCal (ics) 包

java - eclipse 中 "Extract Android String"选项的错误

Java动态代理问题

java - 从java开始的问题

Java(Bukkit)如何在没有这个的情况下访问Config?

c# - 从 Outlook 中检索单个项目的最有效方法是什么(互操作)

c# - Office VSTO 加载项可能的权限问题 - HRESULT 0x80004004 (E_ABORT)

android - Android Outlook 应用程序中的 HTML 电子邮件链接变成蓝色

ios - 是否支持在 CalDAV 或 ical (icalendar) 中将事件标记为只读