我对rails非常陌生,所以请原谅我,如果我错过了一些明显的东西!
ActionMailer不会向我的电子邮件发送正文。标题来得很好,但没有身体。
我有几个类似的问题,但是没有一个解决方案适合我,我花了2天时间在网上搜索并追逐我的尾巴,一切都无济于事!
我有Devise正在运行,并且发送电子邮件很好!
我得出结论,动作制作者没有渲染我的模板。
我有简单的私人消息宝石运行内部邮件,在我的控制器中,当用户在应用程序中收到消息时,我正在发送电子邮件。
到目前为止我尝试过的事情:
使用发送!而不是提供
在user_mailer.erb中指定content_type:,template_path:,template_name:
在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]}.
所有可能的名称前缀为模板... template.html.erb,template.text.html.erb,template.erb
甚至尝试从环境中删除'config.active_support.deprecation =:log',因为帖子显示它可能是修复程序! (虽然如何,我不知道)
如果造成问题,请删除邮件中的任何参数!
根据API提供welcome_email方法,而不是我想要的自定义方法,只是在配置上加入Rails约定已经让我失望了!
设置了ActionMailer Logging,但它似乎没有显示错误,表示已发送电子邮件,但没有引用该模板。 上面的解决方案是我记得的,但是它们都适用于其他人,只是不适合我! 我完全失去了我错过的东西!
提前感谢您的帮助!如果您需要更多代码,请告诉我。
运行 轨道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
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 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)
答案 0 :(得分:4)
这是一个愚蠢的错误,就像我知道的那样! Git提交指出了......
create mode 100644 app/views/user_mailer/ welcome_email.html.erb
create mode 100644 app/views/user_mailer/ welcome_email.text.erb
文件名开头的空格,在Sublime Text中真的很难注意到!
在愚蠢的错误中轻松放松2天,但我学到了很多想要解决的问题!