gpt4 book ai didi

c# - 在电子邮件中添加了 Schema.org 标记,不会影响 Gmail 的收件箱,无论是在移动应用程序还是 Web 应用程序中

转载 作者:行者123 更新时间:2023-12-03 20:52:48 26 4
gpt4 key购买 nike

我可以使用 C# 发送电子邮件和 System.Net.Mail.SmtpClient并使用 Gmail 作为我的 smtp 服务器。现在我想添加 schema我的电子邮件的标记。我希望看到它们影响电子邮件在 Google 产品中的显示方式。
我已按照说明操作 here这样做,但没有成功。
我正在使用 application/ld+json嵌入标记。

这是我生成电子邮件的方式:

public static Task Main()
{
var mail = new MailMessage("mygmail@gmail.com", "mygmail@gmail.com");

var client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Credentials = new System.Net.NetworkCredential("mygmail@gmail.com", "my password");

mail.Subject = "fight confirmation";
mail.IsBodyHtml = true;
mail.Body = GetMailBody ();
await client.SendMailAsync (mail);
}

这是我的 GetMailBody()方法:
public static string GetMailBody ()
{
return @"
<html>
<body>
<script type=""application/ld+json"">
{
""@context"": ""http://schema.org"",
""@type"": ""EmailMessage"",
""potentialAction"": {
""@type"": ""ConfirmAction"",
""name"": ""Approve Expense"",
""handler"": {
""@type"": ""HttpActionHandler"",
""url"": ""https://myexpenses.com/approve?expenseId=abc123""
}
},
""description"": ""Approval request for John's $10.13 expense for office supplies""
}
</script>
Let me know if you're in.
</body>
</html>

";
}

我希望在收件箱中看到一个按钮,就像 Google 文档中显示的那样:
enter image description here

但是我收件箱中的所有内容都与没有任何内容的情况相同 schema标记。

最佳答案

我花了几个小时测试您的架构和代码。

首先,您的代码通常没有问题,但这些按钮未显示的主要原因是我从不同的资源中了解到,这需要您自己的电子邮件使用 DKIM 或 SPF 签名,以便 Gmail 呈现行动。

检查这个 answer , 这个 answer而这个 answer两者都有相同的问题并提到相同的解决方案。

此外,当您使用电子邮件白名单时,我会留下一些工具和资源链接,以帮助您验证架构数据并继续进行处理:

  • https://www.google.com/webmasters/markup-helper/
  • https://developers.google.com/gmail/markup
  • https://www.google.com/webmasters/markup-tester/#
  • https://search.google.com/structured-data/testing-tool
  • https://developers.google.com/search/docs/data-types/review-snippet

  • 最后,这可能与您的问题无关,但值得一提的是,这些操作按钮仅针对 Gmail 所有者呈现,而非其他电子邮件客户端,这也意味着如果您正在寻找更通用的方式在电子邮件中显示按钮,也许只是普通的 html 就可以了,这是一个简单的例子:
    public static string GetMailBody()
    {
    return @"
    <table width=""100%"" cellspacing=""0"" cellpadding=""0"">
    <tr>
    <td>Approval request for John's $10.13 expense for office supplies</td>
    </tr>
    <tr>
    <td>
    <table cellspacing=""0"" cellpadding=""0"">
    <tr>
    <td style=""border-radius: 2px;"" bgcolor=""#ED2939"">
    <a href=""https://www.yourWebConfirmationLink.com"" target=""_blank"" style=""padding: 8px 12px; border: 1px solid #ED2939;border-radius: 2px;font-family: Helvetica, Arial, sans-serif;font-size: 14px; color: #ffffff;text-decoration: none;font-weight:bold;display: inline-block;"">
    Confirm Your Order
    </a>
    </td>
    </tr>
    </table>
    </td>
    </tr>
    </table>
    ";
    }

    这将给出:

    enter image description here

    关于c# - 在电子邮件中添加了 Schema.org 标记,不会影响 Gmail 的收件箱,无论是在移动应用程序还是 Web 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62090634/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com