image_tag, закодированный в base64 в рельсах - PullRequest
2 голосов
/ 30 ноября 2011

Есть ли способ заставить image_tag в rails 3.1 преобразовать изображение в формат base64 для отправки его по электронной почте.

Если нет способа сделать это, может кто-нибудь подсказать мне способ отправки писем, содержащихизображения, которые хранятся на стороне сервера?Если я просто использую image_tag для рендеринга изображений, они не отображаются в электронном письме.

Ответы [ 2 ]

3 голосов
/ 30 ноября 2011

Для отправки изображений с электронными письмами используйте свойство вложения на почту, чтобы отправить файл с почтой:

attachments['logo.png'] = File.read(Rails.public_path + '/images/logo.png')

Этот файл будет отправлен с почтой во вложениях. Чтобы использовать это изображение в теле письма, используйте attachments.inline[], а затем в шаблоне image_tag attachments[].url.

Также обратите внимание, что в Rails 3 есть проблема со встроенными вложениями, так как все обычные вложения не будут видны в основных почтовых клиентах, таких как Thunderbird или Outlook.

2 голосов
/ 30 ноября 2011

в почтовой программе вы можете добавить встроенные вложения, которые вы можете использовать в html для почты: например, у вас есть почтовое действие send_mail (user)

 def send_mail(user)
   attachments.inline['logo.gif'] = File.read("#{Rails.root}/public/logo.gif")
   mail( :to=>"#{user.name} #{user.last_name} <#{user.email}>", :subject => "Payment received")
 end 

и затем в представлении почты: файл send_mail.html

 <center> <%= image_tag attachments['logo.gif'].url, :alt => "Our logo" -%> </center>
...