PHP 如何判断收件人使用的是 outlook 还是 ical friendly calendar?

PHP How to tell if recipient uses outlook or ical friendly calendar?

我找到了几个关于如何使用 php 为 outlook 或 ics 友好日历发送约会的 SO 答案。

我想知道的是,有没有办法以编程方式查明用户使用的是 ics 友好的日历还是 outlook 并做出相应的响应?

正在使用 PHP。

或者有没有办法发送一个无论收件人日历如何都看起来不错的约会?

我们可以假设非 ics 友好日历是 outlook 2003。

更新

我的计划是这样的:

  1. 用户登录页面(因此我的 webapp 知道用户的电子邮件地址与她的日历相关联,假设它是 google 日历)
  2. 用户在“提醒我...”下填写事件详细信息以及相应的日期和时间。
  3. 然后我的网络应用会自动发送 ics 邀请或任何非 ics 友好日历的邀请。

我知道如何发送 ics invite using PHP and for outlook using PHP

我的问题是:

  1. 有没有办法检测日历类型?因为我的网络应用无法提前知道。

  2. 有没有办法在不知道类型的情况下发送邀请?例如同时发送 ics 和非 ics 邀请?也许还有其他更优雅的东西?

如果 Q2 的答案是肯定的,那么我不需要关心检测。

您已在问题中链接到两个单独的进程以向用户提供活动。

first, responds to an HTTP request and returns a response containing only the .ics file. This means a user must then either download the file and manually add it to their calendar, or provide the URL within their client。这意味着您的用户必须知道如何使用这些文件 - 如果您问我,这是一个错误的假设。

second solution you linked 涉及创建精心制作的电子邮件以发送给 Outlook 用户。 Outlook 将电子邮件作为邀请显示给用户,并将其添加到他们的日历中。这是一个更好的解决方案,但它对非 Outlook 用户的帮助不大。


第三个过程可能更适合您的情况:将完整的 .ics 文件作为电子邮件附件发送

根据 Wikipedia and another external site,Outlook 从 Outlook 2000 开始支持 .ics 个文件:

After Outlook 2000, you were able to import and export calendar content with .ics-formatted files.

并且 Gmail and Outlook 都具有内置功能,可帮助用户在已附加 .ics 文件的情况下将活动添加到他们的日历中。作为回退,如果用户的电子邮件客户端 支持 .ics 文件(例如,客户端未绑定到日历应用程序),他们将拥有原始.ics 个文件以添加到他们选择的日历中。


直接回答您的问题:无法预先确定用户选择的日历应用程序,因为此信息未包含在 HTTP 请求中。