Электронная почта, которая автоматически анализируется Gmail и добавляет событие календаря - PullRequest
0 голосов
/ 07 мая 2019

Надеюсь, этот вопрос можно задать здесь, учитывая, что он может заменить мое использование API Календаря Google. Думаю, что все в порядке.

https://stackoverflow.com/help/on-topic

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

https://support.google.com/calendar/answer/6084018?co=GENIE.Platform%3DDesktop&hl=en

Я думаю, что это действительно полезная функция, но я хотел бы знать, смогу ли я создать электронное письмо, которое автоматически появится в моем календаре. В настоящее время я использую Calendar API, Google.Apis.Calendar.v3 , но если бы я мог заставить это работать, моему приложению больше не нужно было бы обрабатывать учетные данные, что было бы действительно здорово.

Случаи, когда электронное письмо не отображается в соответствии со страницей поддержки:

События не будут отображаться, если электронное письмо было:

  • Отправлено в список рассылки
  • Отправлено вам cc
  • Перенаправлено с другой учетной записи электронной почты

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

  • Авиабилеты
  • Гостиницы
  • Рестораны
  • Билетные события, такие как фильмы и концерты

Я читал Events from Gmail и создал пример ниже.

https://developers.google.com/gmail/markup/google-calendar

https://developers.google.com/gmail/markup/getting-started

https://developers.google.com/gmail/markup/reference/event-reservation

<html>
<body>
    <script type="application/ld+json">
        {
        "@context": "http://schema.org",
        "@type": "EventReservation",
        "reservationNumber": "E123456789",
        "reservationStatus": "http://schema.org/Confirmed",
        "underName": {
        "@type": "Person",
        "name": "Oscar Andersson"
        },
        "reservationFor": {
        "@type": "Event",
        "name": "Foo Fighters Concert",
        "performer": {
        "@type": "Organization",
        "name": "The Foo Fighters",
        "image": "http://www.amprocktv.com/wp-content/uploads/2027/01/foo-fighters-1-680x383.jpg"
        },
        "startDate": "2019-05-08T19:30:00-01:00",
        "endDate": "2019-05-08T23:00:00-01:00",
        "location": {
        "@type": "Place",
        "name": "AT&T Park",
        "address": {
        "@type": "PostalAddress",
        "streetAddress": "AT&T Park",
        "addressLocality": "San Francisco",
        "addressRegion": "CA",
        "postalCode": "94107",
        "addressCountry": "US"
        }
        }
        },
        "ticketToken": "qrCode:AB34",
        "ticketNumber": "abc123",
        "numSeats": "1",
        "modifiedTime": "2019-05-07T15:15:00-01:00",
        "modifyReservationUrl": "http://united.com/modifyreservation.html"
        }
    </script>

    <p>
        Dear Oscar, thanks for booking your Google I/O ticket with us.
    </p>
    <p>
        BOOKING DETAILS<br />
        Reservation number: IO12345<br />
        Order for: Oscar Andersson<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>

Я проверил разметку с помощью Email Markup Tester от Google, и там написано No errors detected. Затем я импортировал приведенный выше HTML-код из Notepad ++ в Outlook через «Выполнить» -> «Отправить через Outlook» и отправил его в мой Gmail. Я получил письмо, но событие «Календарь» отсутствует.

https://www.google.com/webmasters/markup-tester/

Согласно их документации All schemas you send to yourself (from x@gmail.com to x@gmail.com) will be displayed in Google products., но я не вижу события.

https://developers.google.com/gmail/markup/registering-with-google

Я пытался создать свою собственную программу для отправки мне электронной почты через серверы Gmail, но события по-прежнему не отображаются. Пробовал копировать множество событий, упомянутых на их руководствах и справочной странице.

var emailAddress = new MailAddress("myGmail@gmail.com", "Ogglas");

SmtpClient smtpClient = new SmtpClient();
smtpClient.Host = "smtp.gmail.com";
smtpClient.Port = 587;
smtpClient.EnableSsl = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new NetworkCredential("myGmail@gmail.com", "mySuperSecurePassword789&");

MailMessage mailMessage = new MailMessage();
mailMessage.From = emailAddress;
mailMessage.To.Add(emailAddress);
mailMessage.Subject = "Concert test";
mailMessage.IsBodyHtml = true;

var currentPath = Directory.GetCurrentDirectory();
var htmlEmail = File.ReadAllText(currentPath + "\\Email.html");
mailMessage.Body = htmlEmail;

smtpClient.Send(mailMessage);

Пример из полета, как я бы хотел, чтобы это выглядело:

Gmail:

enter image description here

Календарь:

enter image description here

Пример с booking.com

enter image description here

Кому-нибудь здесь удалось заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...