我对 Rails 很陌生,所以如果我在这里遗漏了一些明显的东西,请原谅我!
ActionMailer 不会向我的电子邮件发送正文。标题很好,但没有正文。
有几个类似的问题要问我,但是没有一个解决方案对我有用,我花了 2 天时间在互联网上拖网并追逐我的尾巴,但都无济于事!
我正在运行 Devise,它可以正常发送电子邮件!
我得出的结论是 actionmailer 没有呈现我的模板。
我有运行内部邮件的简单私人消息 gem,当用户在应用程序中收到消息时,我在其控制器中发送电子邮件。
到目前为止我尝试过的事情:
使用交付!而不是交付
在 user_mailer.erb 中指定 content_type:、template_path:、template_name:
在 user_mailer 中运行一个 Block 来指定模板。IE
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]}.
模板的所有可能名称前缀 ... template.html.erb、template.text.html.erb、template.erb
甚至尝试从环境中删除 'config.active_support.deprecation = :log' 因为有帖子建议它可能是修复!(虽然如何,我不知道)
删除邮件中的任何参数,以防万一导致问题!
根据 API 尊重welcome_email 方法,而不是我喜欢的自定义方法,只是以防Rails 约定优于配置让我绊倒了!
已设置 ActionMailer Logging,但似乎没有显示任何错误,表示已发送电子邮件,但未引用模板。以上解决方案是我记得的,但它们都对其他人有用,只是不适合我!我对我错过的一切完全不知所措!
提前感谢您的帮助!如果您需要更多代码,请告诉我。
运行 rails 3.2.3、Ruby 1.9、ActionMailer 3.2.3
似乎没有人在这里发布指向 git repo 的链接。这有什么原因吗?非常乐意提供,但似乎没有其他人提供,所以暂时不会。
这是一些帮助查找故障的代码...
user_mailer.rb
class UserMailer < ActionMailer::Base
default :from => "myemail@gmail.com"
def welcome_email(user)
@user = user
@url = "http://example.com/login"
mail(:to => user.email, :subject => "Welcome to My Awesome Site")
end
end
消息控制器.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 user@me.com (14517ms)
Date: Thu, 20 Jun 2013 18:13:23 +0200
From: myapp@gmail.com
To: user@me.com
Message-ID: <31c32a237e61c_b73c3ff82f78328e051786@my-app.com.mail>
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)