Добавлена ​​разметка Schema.org для электронной почты, не повлияет на почтовый ящик Gmail, ни в мобильном приложении, ни в веб-приложении - PullRequest
4 голосов
/ 29 мая 2020

Я могу отправлять электронную почту, используя C# и System.Net.Mail.SmtpClient, и использовать Gmail в качестве своего smtp-сервера. Теперь я хочу добавить разметку schema в свои электронные письма. И я ожидаю увидеть, как они повлияют на отображение электронной почты в продуктах Google. Я выполнил инструкции здесь , чтобы сделать это, но безуспешно.
Я использую 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

Но все в моем почтовом ящике такое же, как и без схемы разметки.

1 Ответ

0 голосов
/ 07 июня 2020

Я потратил несколько часов на тестирование вашей схемы и кода.

Для начала, в ваших кодах нет проблем, но основная причина, по которой эти кнопки не отображаются, как я понял из разных ресурсов что для этого требуется, чтобы ваше собственное электронное письмо было подписано с помощью DKIM или SPF, чтобы Gmail мог выполнить действие.

Отметьте этот ответ , этот ответ и этот ответ оба имеют одну и ту же проблему и упоминают одно и то же решение.

Кроме того, когда вы добавите свой адрес электронной почты в белый список, я оставлю некоторые ссылки на инструменты и ресурсы, которые помогут вам проверить данные схемы и переместить на нем:

Наконец, это может не иметь отношения к вашему вопросу но стоит упомянуть, что эта кнопка действия отображается только для владельцев Gmail, а не для других адресов электронной почты. ients, это также означает, что если вы ищете более общий c способ показать кнопку в своем письме, возможно, вам подойдет обычный 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

...