Gmail 通过应用程序发送电子邮件时,Google架构不起作用

Gmail 通过应用程序发送电子邮件时,Google架构不起作用,gmail,google-schemas,Gmail,Google Schemas,我正试图使用谷歌的电子邮件标记在我的电子邮件中发送活动预订和活动 我已经开始遵循这一点,它的工作很好 然后,我尝试通过我在Visual Studio中用C#开发的应用程序发送相同的电子邮件。电子邮件可以正常发送,但没有标记。我使用gmail的SMTP服务器将电子邮件从我的电子邮件地址发送到我的电子邮件地址,因此没有与SPF等相关的问题 这是我的密码: reservation.html <html> <body> <script type="applicati

我正试图使用谷歌的电子邮件标记在我的电子邮件中发送活动预订和活动

我已经开始遵循这一点,它的工作很好

然后,我尝试通过我在Visual Studio中用C#开发的应用程序发送相同的电子邮件。电子邮件可以正常发送,但没有标记。我使用gmail的SMTP服务器将电子邮件从我的电子邮件地址发送到我的电子邮件地址,因此没有与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>

{
“@context”:”http://schema.org",
“@type”:“EventReservation”,
“reservationNumber”:“IO12345”,
“姓名下”:{
“@type”:“Person”,
“姓名”:“约翰·史密斯”
},
“预订状态”:“已预订”,
“预订”:{
“@type”:“事件”,
“名称”:“谷歌I/O 2013”,
“起始日期”:“2017-09-09T08:30:00-08:00”,
“地点”:{
“@type”:“Place”,
“名称”:“莫斯康中心”,
“地址”:{
“@type”:“PostalAddress”,
“街道地址”:“霍华德街800号”,
“地址地点”:“旧金山”,
“地址区域”:“CA”,
“postalCode”:“94103”,
“地址国家”:“美国”
}
}
}
}

亲爱的John,感谢您与我们一起预订Google I/O票证。

预订详情
预订号码:IO12345
订购:约翰·史密斯
事件:谷歌I/O 2013
开始时间:2013年5月15日太平洋标准时间上午8:00
地点:莫斯康展览中心,800 Howard St.,旧金山,CA 94103

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("myaddress@gmail.com"));
        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());
    });
}
private static void sendmail(IApplicationBuilder应用程序)
{
运行(异步上下文=>
{
string message=context.Request.Form[“message”];
Newtonsoft.Json.Linq.JObject messageJson=JsonConvert.DeserializeObject(消息);
Newtonsoft.Json.Linq.JObject messageResult=new Newtonsoft.Json.Linq.JObject();
字符串email=messageJson[“email”].ToString();
字符串subject=messageJson[“subject”].ToString();
MailMessage emailmessage=新邮件();
emailmessage.From=新邮件地址(电子邮件);
emailmessage.To.Add(新邮件地址(“myaddress@gmail.com"));
emailmessage.Subject=Subject;
字符串email_body=File.ReadAllText(“reservation.html”);
emailmessage.IsBodyHtml=true;
emailmessage.BodyEncoding=System.Text.Encoding.UTF8;
emailmessage.BodyTransferncode=System.Net.Mime.Transferncode.QuotedPrintable;
emailmessage.Body=电子邮件\正文;
SmtpClient=新的SmtpClient();
client.Host=myConfiguration.GetSection(“SmtpServer”).Value;
client.Port=int.Parse(myConfiguration.GetSection(“SmtpPort”).Value);
client.Credentials=newnetworkcredential(myConfiguration.GetSection(“用户名”).Value,myConfiguration.GetSection(“密码”).Value);
client.enablesl=true;
发送(emailmessage);
messageResult[“SmtpServer”]=myConfiguration.GetSection(“SmtpServer”).Value;
context.Response.ContentType=“应用程序/json”;
wait context.Response.WriteAsync(messageResult.ToString());
});
}
我的印象是,在我的代码中,阻止将事件添加到电子邮件中并不是一个问题,而是gmail阻止了它

我看了其他帖子,但不幸的是,它们没有多大帮助


是否有人遇到过同样的问题并设法解决了它?

由于您的实现不起作用,因此在整个过程中似乎缺少了一些东西

按照提供的这些步骤,您可能会发现其中的一些要点

  • 当你准备好向用户发送标记电子邮件时,你需要向谷歌注册。请遵循以下流程:

  • 确保您满足以下列出的所有准则和要求。从您的生产服务器(或 具有类似DKIM/SPF/From:/Return Path:headers)的服务器,包括 将标记/架构转换为schema.whitelisting+sample@gmail.com. 我们需要 这是为了检查您是否遵守所有指南和 中列出的要求

    • 如果您发送一封测试/空白电子邮件,则不包含架构的电子邮件,或者如果您不发送电子邮件以审查您的应用程序,则将删除该电子邮件 被默默地抛弃

    • 发送电子邮件之前,请确保标记正确。有关更多详细信息,请参阅。尤其要确保 电子邮件通过,并且没有错误, 还要确保包含尽可能多的数据

    • Gmail在转发电子邮件时会删除所有标记。不要转发电子邮件,而是直接发送

  • 填好表格,我们会给你回复的


因为您的实现不起作用,所以在这个过程中似乎缺少了一些东西

按照提供的这些步骤,您可能会发现其中的一些要点

  • 当你准备好向用户发送标记电子邮件时,你需要向谷歌注册。请遵循以下流程:

  • 确保您满足以下列出的所有准则和要求。从您的生产服务器(或 具有类似DKIM/SPF/From:/Return Path:headers)的服务器,包括 将标记/架构转换为schema.whitelisting+sample@gmail.com. 我们需要 这是为了检查您是否遵守所有指南和 中列出的要求

    • 如果您发送了一封测试/空白电子邮件,则该电子邮件不会