2012-08-24 38 views
5

看來,在我將rails升級到3.2.8的時候,創建和發送電子郵件時未設置正文。目前沒有任何代碼發生變化,ActionMailer除了升級到3.2.8。ActionMailer發送帶空體的電子郵件

我在app/mailersbeta_request_mailer.rb以下方法:

def beta_request(request) 
    mail(
    :to => "#{request[:name]} <#{request[:email]}>", 
    :subject => 'Thanks for requesting an invite to xxxxx!' 
) 
end 

我也有一個體文件,它工作得很好:app/views/beta_request_mailer/beta_request_email.html.erb

電子郵件被髮送很好,只是沒有任何的身體。在控制檯中運行時,運行mail.body時,在beta_request中創建的郵件對象沒有正文。如果我手動設置身體,則會被髮送出去。

我不知道發生了什麼變化?

回答

1

修正了從文件名除去_EMAIL

+0

+1這對我來說很明顯,但我必須確保我的#action與我的視圖具有相同的名稱 – you786

2

我也得到那個趕到確定並用正確的主題,但在郵件中沒有的內容,發現使用.deliver電子郵件!而不是隻是.deliver方法解決了問題(雖然不知道爲什麼)

+2

應該指出,'deliver!'(與'deliver'相對)跳過了電子郵件[攔截器](http://guides.rubyonrails.org/action_mailer_basics.html#intercepting-emails),因此應謹慎使用。 – nickcoxdotme

1

我的解決方案非常有趣。

  1. 首先,我的Rails 4應用程序拋出一個沒有佈局文件的錯誤郵件。

  2. 我創建了空白布局文件mailer.html.slim。這導致郵件投遞但沒有內容。

  3. 解決方案是增加==yieldmailer.html.slim

作品般的魅力。希望這是你的問題,這對你有幫助。

相關問題