2013-03-26 7 views
1

我正在寻找在电子邮件发送时在电子邮件中显示公司徽标。我开始考虑动作邮件库,并且有附件内联功能,它支持邮件中的图像。Rails:邮件中的attachments.inline []

我实现了它这样:

在user_mailer.rb

def welcome_email(user) 
@user = user 
@url = "http://mealnut.com" 
    attachments.inline['mealnut.png'] 

mail(:to => user.email, :subject => "Mealnut: New Order #{order.id}") 
end 
在配置

/application.rb中:

config.action_mailer.default_url_options = { :host => "mealnut.com" } 
在welcome_email.html.web

<div class="logo"> 
      <%= image_tag attachments['mealnut.png'].url, :alt => 'Mealnut', :class => 'photo' %> 
    </div> 

但它是g iving错误:

undefined method `url' for nil:NilClass 

怎么回事?

回答

2

附件和内联附件的区别仅在于内联将通过base64插入,但您需要无论如何都要附加一个文件!

attachments.inline['mealnut.png'] = File.read(Rails.root.join("app/some/path/","mealnut.png")) 

比你能够引用它在视图

希望帮助!

+0

嘿,实施你建议的解决方案。但它给错误:未定义的方法'长度'为# user2206724 2013-04-09 11:15:07

+0

对不起更新以前的答案:而不是打开我使用阅读 – guefi 2013-04-09 12:46:20

+0

嘿酷得到图像至少有邮件:-)。但它不会显示在邮件中作为标题。它显示为附件。 – user2206724 2013-04-09 15:25:15