2016-06-16 2 views
0

Я создаю приложение Rails. Когда пользователь подписывается, я отправляю почтовую программу с подтверждением, используя приложение.Изображение/CSS в Mailer in Rails не применяется только в Gmail

Я узнал, что мое изображение и css загружается в другой почтовый провайдер, такой как hotmail. Однако изображение/css в моем почтовом представлении не загружено должным образом в gmail. Интересно, почему он не работает в gmail. Я поместил все CSS в встроенный стиль, так как увидел, что я не могу добавить CSS-файлы в представления мэйлера.

В production.rb, я поставил asset_host:

config.action_mailer.asset_host = ENV['DEFAULT_HOST'] 

Ниже код почтовик я в Rails:

<body style="background-color: #F7F7F7;"> 
<div class="main wrapper clearfix"> 
    <div style="border: 1px solid #e4e4e4; 
     border-radius: 5px; 
     margin: 50px auto; 
     padding: 20px 50px; 
     box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.15); 
     background-color: white; 
     max-width: 700px;"> 
     <div style="text-align:center"> 
      <%= image_tag("logo-green.svg") %> 
     </div><br><br> 
     <div> 
      <p>Welcome <%= @user.first_name %>!</p> 

      <p style="line-height: 1.5">Let's confirm your email address. Click the button below to confirm your email.</p> 

      <%= link_to 'CONFIRM ACCOUNT', 
      confirmation_url(@resource, confirmation_token: @token), 
      style: "font-family: Raleway-SemiBold, sans-serif; 
       -webkit-font-smoothing: antialiased; 
       display: inline-block; 
       cursor: pointer; 
       text-decoration: none; 
       color: white; 
       letter-spacing: 1px; 
        padding: 13px 30px; 
        font-size: 0.8em; 
        color: #fff; 
        background-color: #00BA9B; 
        transition: box-shadow 0.2s cubic-bezier(0.4, 0, 0.2, 1); 
        transition-delay: 0.2s; 
        box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.26); 
        margin-top: 25px; 
        margin-bottom: 20px; 
        border-radius:" %> 

      <br><br> 
      <p style="line-height: 1.5">Thanks,<br>website <br> <a href="www.website.com" style="color: #00BA9B; text-decoration:none">www.website.com</a></p> 
      <br> 

      <p style="color:grey; font-size:11px;">P.S. If you didn't sign up for website, please ignore this email - apologies for the disturbance.<p> 
     </div> 
    </div> 
</div> 
</body> 

Я вижу, что какой-либо из CSS на CONFIRM ACCOUNT тег не работает на всех и <%= image_tag("logo-green.svg") %> тоже не загружен.

Очень странно, что он работает в hotmail, но не в Gmail.

Хотелось бы получить совет!

ответ

1

Думаю, вам нужно определить свое изображение как приложение в вашей почтовой программе. Например. У меня есть почтовая программа в app/mailers/customer_mailer.rb, которая имеет метод verification_confirmation. В этом методе у меня есть следующие строки:

attachments.inline['logo.png'] = File.read(Rails.root.join("app/assets/images/logo.png"))

Теперь, по мнению за это сообщение (т.е. app/views/customer_mailer/verification_confirmation.html.erb теперь я могу вставить изображение, как это:

<%= image_tag attachments['logo.png'].url, style: "width: 15vw; min-width: 200px;" %>

+0

как о CSS CSS также не работает в gmail:/ – JoHksi

+0

Да, на самом деле я не знаю, как это исправить. У меня есть все мои стили электронной почты, встроенные в списки рассылки, и он отлично работает в Gmail. Я боюсь, что вы не можете использовать классы со связанными стилями (например, 'main wrapper clearfix'), если вы хотите, чтобы HTML был правильно st в Gmail. – chndt

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