【问题标题】:Can Office 365 REST API send an email with both plain text and HTML body?Office 365 REST API 可以发送包含纯文本和 HTML 正文的电子邮件吗?
【发布时间】:2017-05-03 04:02:07
【问题描述】:

我正在查看 API 文档,看起来您只能在 Message 中指定一个 Body

发送消息:

https://msdn.microsoft.com/en-us/office/office365/api/mail-rest-operations#SendMessages

Message 类型:

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar#MessageResource

是否可以使用纯文本和 HTML 来执行多部分消息之类的操作?

最终,我希望发送此消息并附上日历会议邀请,但这是另一个主题。

【问题讨论】:

  • 在 Text 和 HTML 中都有消息意味着什么?您甚至希望客户如何呈现这个?
  • @Yogesh 使用文本和 HTML 格式的电子邮件是一种非常标准的做法。客户端呈现你喜欢的那个。
  • 显然您只想将 HTML 文件附加到文本电子邮件中?
  • @GSerg 我认为附件不一样。我想我希望在主体消息上出现Content-Type: multipart/alternative; ...,然后是内容类型为text/plaintext/html 的两个部分
  • 显然是it's not supported

标签: office365 office365api


【解决方案1】:

Office 365 REST API 能否发送包含纯文本和 HTML 正文的电子邮件?

不,您将使用 REST 点来设置一种或另一种类型的主体。

是否可以用纯文本和 HTML 来做多部分消息之类的事情?

当邮件在发送时转换为 MIME 时,这将由 Exchange 环境为您完成。 Exchange 将生成 MIME 的“多部分/替代”部分,并为您使用 REST 调用设置的内容设置适当的纯文本和 HTML。例如,如果您通过休息请求设置“HTML”正文,则传出的 MIME 将具有您设置的 HTML 部分,以及由 Exchange MIME 转换器生成的替代“纯文本”部分,作为剥离版本到您的裸文本HTML;反之亦然。

请注意,我们不是在讨论与邮件附件相关的“多部分/混合”部分。这只是关于消息正文的替代部分。

最后,看看 Microsoft Outlook 应用程序。这是 Exchange 环境的另一个客户端。您可以将消息编写为纯文本或选择将其编写为 RTF/HTML,但不能同时使用两者。替代部分将由Exchange MIME converter 生成,作为 Message -> MIME 转换的一部分,并且 MIME 将具有相同正文的替代部分。

最后我不确定我是否回答了你的问题,因为从 cmets 看来你知道什么是“multipart/alternative”以及它与“multipart/mixed”有何不同。

【讨论】:

  • 我会说你回答了。这很有帮助。很高兴知道 Outlook 只是这些相同 API 的另一个客户端。否则我可能会陷入困境,比如编写一个原生 Windows 应用程序来控制 Outlook 应用程序,以尝试获得比 REST API 更多的功能。
  • @RobN 好吧,Outlook 是 Exchange 的另一个客户端,但它确实不使用 REST。 REST 是第 3 方应用程序的公共 API。 Outlook(现代版)本身使用MAPI over HTTP。在这里,我试图传达这样一个观点,即在将 Message 对象发送到野外之前,Exchange 所做的任何事情都对任何客户端和 API 都有效。很高兴它为您澄清事情。
  • 啊,好吧。我也可以使用 MAPI 还是私有的?我问的原因是我需要创建一些带有日历邀请的富文本电子邮件。我想确保我的程序可以执行 Outlook 中的用户可以执行的任何操作。在过去,这是一个问题,但我还没有真正开始测试 Office 365 REST API。
  • 没错,这是私有接口。可用于第 3 方应用程序的内容:REST、EWS(几乎相同,SOAP 版本)、Office Graph API 和带有 MAPI (VSTO/COM) 或 Office 加载项的加载项 Outlook 扩展性。很多选择。这可能有助于您通读:Selecting an API or technology for developing solutions for Outlook
猜你喜欢
  • 2015-04-10
  • 2022-08-06
  • 2017-06-28
  • 2012-10-31
  • 2021-04-12
  • 1970-01-01
  • 2018-02-17
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多