Как отправить электронное письмо с фоновым изображением, не прикрепляя это изображение в качестве файла для скачивания? - PullRequest
2 голосов
/ 24 марта 2019

Я отправляю письмо, оно работает так, как я хочу, но когда письмо приходит, оно приходит с прикрепленным изображением, которое я использовал в качестве фона моего сообщения

Так я добавляю свое изображение в электронное письмо

<div style="background-image:url('<%= email_bg_tag("bg-email.jpg") %>');background-position:top center;background-repeat:no-repeat;background-color:transparent;">

Это мой email_helper.erb

module EmailHelper
  def email_bg_tag(image)
    attachments[image] = File.read(Rails.root.join("app/assets/images/#{image}"))
    attachments[image].url
  end
end

Мои изображения в assets/image

1 Ответ

4 голосов
/ 24 марта 2019

Пропустите конвейер ресурсов для статических изображений для работы в вашем почтовом ящике, вы должны поместить их в:

Rails.root + 'public/images'

Тогда в нашем почтовом ящике вы должны использовать css с полным URL-адресом изображения:

 background-image:url('http://yoursite.com/public/images/background.jpg');

Я бы порекомендовал использовать тег стиля в вашей почтовой программе и просто добавить класс следующим образом:

<style>
  .my-fancy-background {
    background-image: url('http://yoursite.com/public/images/bg-email.jpg');
    background-position: top center;
    background-repeat: no-repeat;
    background-color: transparent;
  }
</style>
<div class="my-fancy-background">
  Here is my email div with some fancy background  
</div>

Но если вам все еще нужен вспомогательный метод, вам также может потребоваться установить его в application.rb

config.action_mailer.asset_host = 'http://example.com/public/' 
# use public url of your app where your static images can be served from. 
ОБНОВЛЕНИЕ

В соответствии с комментарием gwally, это может не поддерживаться в Outlook, поэтому, если вам важно, чтобы это поддерживалось для Outlook, вы можете посмотреть здесь

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