1

我们现在正在向使用 Outlook、Gmail 和其他客户端的客户发送交易电子邮件。

我们希望有条件地发送可操作邮件,仅针对我们的 Outlook / Office 365 客户(我们将向非 Outlook 用户发送完全不同的交易电子邮件),但我们不确定如何确定收件人是否正在使用 Outlook / Office 365 而不是例如 Gmail。

  • 有没有办法在发送之前确定收件人的电子邮件客户端类型?
  • 如果不是,那么在逻辑上显示可操作消息与其他电子邮件提供商的回退的最佳方法是使用条件标签吗?IE<!--[if mso]><![endif]-->

我还注意到,Gmail 有时会将带有<script>标签(可操作邮件所需的标签)的电子邮件标记为危险。我尝试只为 Office 365 客户端呈现它们,如下例所示,但这不起作用:

<!--[if mso]>
  <script type="application/adaptivecard+json">
    {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.0",
        "originator": "",
        "body": [
            {
                "size": "large",
                "text": "Hello Actionable message",
                "wrap": true,
                "type": "TextBlock"
            }
        ],
        "actions": [
            {
                "type": "Action.InvokeAddInCommand",
                "title": "Open Actionable Messages Debugger",
                "addInId": "3d1408f6-afb3-4baf-aacd-55cd867bb0fa",
                "desktopCommandId": "amDebuggerOpenPaneButton"
            }
        ]
    }
  </script>
<![endif]-->
4

2 回答 2

0

您可以检查他们域的电子邮件是否由 Microsoft Exchange 处理。虽然这并不完美(因为客户可能正在使用其他电子邮件客户端来阅读他们的 Exchange 电子邮件),但似乎大多数拥有 Exchange 邮件服务器的客户将使用 Outlook 或 Outlook.com/Outlook Web Access;相反,一些客户可能正在使用 Outlook 来阅读他们的 IMAP 或 POP 电子邮件,但我们可以预期这些客户将是少数。

Microsoft Exchange 的自动发现 (docs)应该允许您检测域的电子邮件是否由 Exchange 处理。

Microsoft 提供了Office 365 Exchange DNS 连接测试,它显示了确定 Exchange 是否在域上运行所经历的步骤。您可以编写这些相同的步骤来确定每个客户的域是否具有 Exchange。

于 2020-12-31T15:34:29.347 回答
0

你是如何实施的?我的方案是将电子邮件作为 AMP 发送给 gmail 用户,并作为可操作的消息发送给使用 Outlook 客户端的人。

于 2022-01-27T08:07:05.450 回答