我是非常新的鐵軌,所以請原諒我,如果我在這裏失蹤的東西明顯!ActionMailer發送空白電子郵件,而不是渲染模板,Rails 3
ActionMailer不會將正文發送到我的電子郵件。標題通過罰款,但沒有身體。
我的幾個類似的問題,但沒有解決方案爲我工作,我花了2天拖網和追逐我的尾巴,都無濟於事!
我有設計運行,併發送它的電子郵件罰款!
我得出的結論是actionmailer沒有渲染我的模板。
我有簡單的私人消息gem運行內部郵件,並在其控制器我發送電子郵件時,用戶在應用程序中收到一條消息。
事情到目前爲止,我曾嘗試:
使用提供!而不是提供
指定CONTENT_TYPE :, template_path :, TEMPLATE_NAME:在user_mailer.erb
在user_mailer文件運行塊指定模板。即
format.html { render 'welcome_email' } format.text { render :text => 'welcome_email.txt.erb' })
這將導致錯誤,儘管模板在正確的目錄是(我認爲)
ActionView::MissingTemplate (Missing template user_mailer/welcome_email with {:locale=[:en], :formats=>[:text], :handlers=>[:erb, :builder, :arb, :coffee, :haml]}.
所有可能的名字前綴的模板...... 模板。 html.erb,template.text.html.erb,template.erb
即使嘗試刪除'config.active_suppo rt.deprecation =:log'從環境中,因爲一個帖子建議它可能是修復! (雖然我怎麼樣,我不知道)
在郵件中刪除任何參數,以防萬一導致問題!
尊敬welcome_email方法根據API,而不是一個自定義的,我會推遲,只是incase Rails約定配置已經讓我失望!
已設置ActionMailer日誌記錄,但它似乎沒有顯示錯誤,表示電子郵件發送,但沒有引用模板。 上述解決方案是我記得的,但他們都爲別人工作,只是不適合我! 我完全喪失了我所錯過的!
在此先感謝您的幫助!如果你需要更多的代碼,請告訴我。
運行 導軌3.2.3, Ruby 1.9的, 的ActionMailer 3.2.3
似乎沒有人張貼在這裏鏈接到GIT repo's。這是有原因的嗎?非常樂意提供,但似乎沒有人,所以現在不會。
下面是一些代碼,以幫助找到故障...
user_mailer.rb
class UserMailer < ActionMailer::Base
default :from => "[email protected]"
def welcome_email(user)
@user = user
@url = "http://example.com/login"
mail(:to => user.email, :subject => "Welcome to My Awesome Site")
end
end
messages_controller.rb
def create
@message = Message.new(params[:message])
@message.sender = @user
@message.recipient = User.find(params[:message][:to])
if @message.save
flash[:notice] = "Message sent"
UserMailer.welcome_email(@message.recipient).deliver!
redirect_to user_messages_path(@user)
else
render :action => :new
end
末
welcome_email.html.erb
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
</head>
<body>
<h1>Welcome</h1>
</body>
</html>
welcome_email.text.erb
Text Text Text!!!
日誌從控制檯服務器
Sent mail to [email protected] (14517ms)
Date: Thu, 20 Jun 2013 18:13:23 +0200
From: [email protected]
To: [email protected]
Message-ID: <[email protected]>
Subject: Welcome to My Awesome Site
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Redirected to http://localhost:3000/users/1/messages
Completed 302 Found in 14674ms (ActiveRecord: 15.3ms)
首先,你的郵件模板的完整路徑是什麼?應該是app/views/user_mailer/welcome_email.html.erb。其次,「捆綁開放式設計」並確認您的操作與他們完全相同。 – davidfurber
@davidfurber感謝您的回覆。路徑是'app/views/user_mailer/welcome_email.html.erb'和'app/views/user_mailer/welcome_email.test.erb' –
在Devise Gem我有點迷路,我不理解ActionMailer Logic。 'def devise_mail(record,action,opts = {}) initialize_from_record(record) mail headers_for(action,opts)'這與我正在做的不一樣! –