Схема Google не работает при отправке писем через приложение

Я пытаюсь использовать разметку электронной почты от Google для отправки информации о мероприятиях и действиях в своих электронных письмах.

Я начал с этого учебника, и он отлично работает.

Затем я попытался отправить то же электронное письмо через приложение, которое я разработал на C# в Visual Studio. Письмо отправляется нормально, но разметки нет. Я отправляю электронное письмо со своего адреса электронной почты на свой адрес электронной почты, используя SMTP-сервер gmail, поэтому нет проблем, связанных с SPF и т. д.

Вот мой код:

reservation.html

<html>
<body>
    <script type="application/ld+json">
        {
        "@context":              "http://schema.org",
        "@type":                 "EventReservation",
        "reservationNumber":     "IO12345",
        "underName": {
        "@type":               "Person",
        "name":                "John Smith"
        },
        "reservationStatus":     "booked",
        "reservationFor": {
        "@type":               "Event",
        "name":                "Google I/O 2013",
        "startDate":           "2017-09-09T08:30:00-08:00",
        "location": {
        "@type":             "Place",
        "name":              "Moscone Center",
        "address": {
        "@type":           "PostalAddress",
        "streetAddress":   "800 Howard St.",
        "addressLocality": "San Francisco",
        "addressRegion":   "CA",
        "postalCode":      "94103",
        "addressCountry":  "US"
        }
        }
        }
        }
    </script>
    <p>
        Dear John, thanks for booking your Google I/O ticket with us.
    </p>
    <p>
        BOOKING DETAILS<br />
        Reservation number: IO12345<br />
        Order for: John Smith<br />
        Event: Google I/O 2013<br />
        Start time: May 15th 2013 8:00am PST<br />
        Venue: Moscone Center, 800 Howard St., San Francisco, CA 94103<br />
    </p>
</body>
</html>

Startup.cs

private static void sendemail(IApplicationBuilder app)
{
    app.Run(async context =>
    {
        string message=context.Request.Form["message"];
        Newtonsoft.Json.Linq.JObject messageJson = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(message);
        Newtonsoft.Json.Linq.JObject messageResult = new Newtonsoft.Json.Linq.JObject();

        string email = messageJson["email"].ToString();
        string subject = messageJson["subject"].ToString();
        MailMessage emailmessage = new MailMessage();
        emailmessage.From = new MailAddress(email);
        emailmessage.To.Add(new MailAddress("[email protected]"));
        emailmessage.Subject = subject;

        string email_body = File.ReadAllText("reservation.html");
        emailmessage.IsBodyHtml = true;
        emailmessage.BodyEncoding = System.Text.Encoding.UTF8;
        emailmessage.BodyTransferEncoding =System.Net.Mime.TransferEncoding.QuotedPrintable;
        emailmessage.Body = email_body;

        SmtpClient client = new SmtpClient();
        client.Host=myConfiguration.GetSection("SmtpServer").Value;
        client.Port = int.Parse(myConfiguration.GetSection("SmtpPort").Value);
        client.Credentials = new NetworkCredential(myConfiguration.GetSection("Username").Value,myConfiguration.GetSection("Password").Value);
        client.EnableSsl = true;
        client.Send(emailmessage);

        messageResult["SmtpServer"] = myConfiguration.GetSection("SmtpServer").Value;
        context.Response.ContentType = "application/json";
        await context.Response.WriteAsync(messageResult.ToString());
    });
}

У меня сложилось впечатление, что проблема не в моем коде, которая препятствует добавлению события в электронное письмо, а в том, что Gmail блокирует его.

Я просмотрел другие сообщения, но они, к сожалению, не очень помогли.

У кого-нибудь была такая же проблема и удалось ее решить?


person Umberto De Luca    schedule 02.08.2017    source источник


Ответы (1)


Поскольку ваша реализация не работает, может показаться, что в процессе чего-то не хватает.

Выполните следующие действия, описанные в разделе Разметка электронной почты. Возможно, вы найдете там важные моменты.

  • Когда вы будете готовы отправлять размеченные электронные письма своим пользователям, вам нужно будет зарегистрироваться в Google. Пожалуйста, следуйте этому процессу:

  • Убедитесь, что вы соответствуете всем рекомендациям и требованиям, перечисленным ниже. Отправьте реальное электронное письмо с ваших рабочих серверов (или серверов с аналогичными заголовками DKIM/SPF/From:/Return-Path:), включая разметку/схему, на [email protected]. Нам это нужно, чтобы убедиться, что вы соблюдаете все правила и требования, перечисленные в Правила регистрации.

    • Если вы отправляете тестовое/пустое электронное письмо, электронное письмо, не содержащее схемы, или если вы не отправляете электронное письмо для проверки, ваше приложение будет автоматически отклонено.

    • Перед отправкой письма убедитесь, что разметка правильная. Дополнительные сведения см. в разделе Тестирование схемы. В частности, убедитесь, что электронное письмо проходит тестер разметки электронной почты и что в нем нет ошибок, также не забудьте включить как можно больше данных.

    • Gmail удаляет всю разметку при пересылке электронной почты. Не пересылайте письмо, а отправьте его напрямую.

  • Заполните регистрационную форму и мы свяжемся с вами.

person MαπμQμαπkγVπ.0    schedule 03.08.2017
comment
Я все еще нахожусь на стадии разработки, поэтому я бы предпочел отправлять электронные письма со своего адреса на свой адрес, что должно работать нормально, учитывая, что когда я использую учебный сценарий на script.google.com, он работает отлично. - person Umberto De Luca; 04.08.2017