2

Я пытаюсь настроить Gmail's Email Markup, но я не могу проверить его в приложении Rails.Отправка электронной почты с помощью Google Markup в приложении Rails

Чтобы проверить это, я изменил настройки SMTP ActionMailer, чтобы быть следующим:

# config/environments/development.rb 
config.action_mailer.smtp_settings = { 
    :address => "smtp.gmail.com", 
    :port => 587, 
    :domain => 'gmail.com', 
    :user_name => '[email protected]', 
    :password => '[REDACTED]', 
    :authentication => 'plain', 
    :enable_starttls_auto => true 
} 

Мой Mailer устанавливает по умолчанию from и to адреса и определяет метод mail_action следующим образом:

# app/mailers/test_mailer.rb 
class TestMailer < ActionMailer::Base 
    default from: "[email protected]" 
    default to: "[email protected]" 

    def mail_action 
    @data = confirm_action 

    mail subject: "Mail action" 
    end 

    def confirm_action 
    { 
     "@context" => "http://schema.org", 
     "@type" => "EmailMessage", 
     "action" => { 
     "@type" => "ConfirmAction", 
     "name" => "Confirm registration", 
     "handler" => { 
      "@type" => "HttpActionHandler", 
      "url" => "http://google.fr", 
     }, 
     }, 
    } 
    end 
end 

Метод confirm_action определяет разметку для моего действия, следуя Google's documentation.

В представлении для метода mail_action, добавить разметку в <head>:

# app/views/test_mailer/mail_action.html.haml 
!!! Strict 
%html 
    %head 
    %title Mail Action 

    = content_tag :script, type: 'application/ld+json' do 
     = JSON.generate(@data).html_safe 

    %body 
    %h1 Mail Action 
    %pre 
     = JSON.generate(@data).html_safe 

Я просто отправить электронное письмо с помощью консоли Rails с помощью TestMailer.mail_action.deliver. В электронной почте я получаю, я могу ясно видеть разметку, однако действие кнопки не здесь:

Return-Path: <[email protected]> 
Received: from gmail.com ([REDACTED IP ADDRESS]) 
     by mx.google.com with ESMTPSA id qg11sm20491658wic.17.2014.12.17.03.07.30 
     for <[email protected]> 
     (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); 
     Wed, 17 Dec 2014 03:07:36 -0800 (PST) 
Date: Wed, 17 Dec 2014 12:07:29 +0100 
From: [email protected] 
To: [email protected] 
Message-ID: <[email protected]> 
Subject: Mail action 
Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: 7bit 

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Mail Action</title> 
    <script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ConfirmAction","name":"Confirm registration","handler":{"@type":"HttpActionHandler","url":"http://google.fr"}}} 
    </script> 
    </head> 
    <body> 
    <h1>Mail Action</h1> 
    <pre>{"@context":"http://schema.org","@type":"EmailMessage","action":{"@type":"ConfirmAction","name":"Confirm registration","handler":{"@type":"HttpActionHandler","url":"http://google.fr"}}}</pre> 
    </body> 
</html> 

Gmail Inbox

Кто-нибудь знает, что я пропускаю/делаю неправильно? Заранее спасибо !

ответ

0

Для отправки тестовых сообщений электронной почты, даже для себя, электронные письма должны быть подписаны с DKIM/SPF, чтобы предотвратить подтасовку как упоминание в этом вопросе: Unable to test the GMail custom actions

Вы можете проверить разметку отправки и электронной почты для себя с Apps Script , Когда разметка хорошо протестирована, вы можете зарегистрироваться в Google. Вот необходимая информация https://developers.google.com/gmail/markup/registering-with-google#registration_guidelines

+0

К сожалению, моя разметка создается в зависимости от контекста. Есть ли способ подписывать электронные письма без использования скриптов приложений? – Aliou

+0

Я нашел эту ссылку https://support.google.com/a/answer/174124?hl=ru&ref_topic=2752442&rd=1 Надеюсь, это поможет вам – Gerardo

Смежные вопросы