2013-03-26 36 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