2016-12-21 3 views
4

Я использую Ruby on Rails для генерации электронной почты. Как упоминалось в Email markup docs, я модифицировал мои (* .html.haml) шаблоны, чтобы включить схему для Email markup. Ниже код из моего шаблона почтовой программы:Email markup-Gmail, изменяющий тег <script>, чтобы добавить дополнительную строку «3D»

%script{ type: "application/ld+json" } 
    { 
    "@context" : "http://schema.org", 
    "@type" : "FoodEstablishmentReservation", 
    "reservationNumber" : "#{reservation.id}", 
    ... 
    } 

Я также изменил отправителя и получателя сообщения электронной почты на тот же электронный идентификатор, как указано here для тестирования схемы в режиме разработки.

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

Return-Path: <[email protected]> 
... 
Date: Wed, 21 Dec 2016 13:14:45 +0530 
From: [email protected] 
To: [email protected] 
... 
Mime-Version: 1.0 
Content-Type: multipart/alternative; boundary="--==_mimepart_585a32ecf2d94_143673fd10d24128893014"; charset=UTF-8 
Content-Transfer-Encoding: 7bit 

----==_mimepart_585a32ecf2d94_143673fd10d24128893014 
Content-Type: text/plain; charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 
... 
<script type=3D'application/ld+json'> 
    { 
    "@context" : "http://schema.org", 
    "@type" : "FoodEstablishmentReservation", 
    "reservationNumber" : "<reservation-id>", 
    ... 
    } 
</script> 
... 

Теперь, если я проверить это содержание <script> тегов в Email markup tester, он говорит «нет структурированных данных не присутствует», но как только я удалите «3D» с тега <script> и сделайте его <script type='application/ld+json'>, он правильно структурирует данные для всех полей.

Итак, я не могу понять, почему эта дополнительная строка «3D» добавляется в HTML? Это из-за Хэмла? или Gmail делает это? И есть ли что-нибудь, что я могу исправить, чтобы протестировать эту разметку электронной почты в среде разработки. Позвольте мне знать, нужна ли дополнительная информация.

+0

Это система кодирования электронной почты, которая позволяет не-ASCII символы, которые будут представлены в виде ASCII для электронной транспортировки. Эта кодировка называется «quoted-printable», поэтому в вашем письме есть 3D-значение. Если вы проверите этот связанный [SO post] (http://stackoverflow.com/a/4016098/5995040), в котором обсуждались некоторые способы избежать этого, например, изменить его на «Content-Transfer-Encoding». Надеюсь это поможет. –

+0

Вы нашли, как это решить? – Daniel

ответ

0

вы можете попробовать добавить этот мета-тег в заголовке

<meta charset="charset=ISO-8859-1"/> 
Смежные вопросы