首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rake ActionMailer问题

Rake ActionMailer问题
EN

Stack Overflow用户
提问于 2015-08-10 04:28:52
回答 1查看 151关注 0票数 0

我正在对我的应用程序进行故障排除,以了解电子邮件通过Rake失败的原因。

我的用户模型:

代码语言:javascript
复制
class User < ActiveRecord::Base
  def User.test
    puts "a string is returned"
    UserMailer.email_test
  end
end

我的UserMailer:

代码语言:javascript
复制
class UserMailer < ActionMailer::Base
  def email_test
    mail to: "test", subject: "test"
  end
end

如果我从rails控制台(User.test)调用该方法,我将获得正确的输出:

代码语言:javascript
复制
a string is returned
Rendered user_mailer/email_test.html.erb within layouts/mailer (0.8ms)
Rendered user_mailer/email_test.text.erb within layouts/mailer (0.2ms)

UserMailer#email_test: processed outbound mail in 106.5ms
=> #<Mail::Message:69873560567220, Multipart: true, <To: test>, <Subject: test>, <Mime-Version: 1.0>, <Content-Type: multipart/alternative; boundary="--==_mimepart_55c7b5db58f18_16fd3f8cb2e279986086"; charset=UTF-8>>

现在,我尝试将其移动到lib/tasks/scheduler.rake文件中的rake任务中,如下所示:

代码语言:javascript
复制
task :mytest => :environment do
  User.test
end

当我使用以下命令调用任务时

代码语言:javascript
复制
rake mytest

我得到的唯一的项目是字符串,但没有相关的电子邮件(见下文)。

代码语言:javascript
复制
bastien@bastien-ThinkPad-T540p:~/rails/app-505/lib/tasks$ rake mytest
(in /home/bastien/rails/app-505)
a string is returned
bastien@bastien-ThinkPad-T540p:~/rails/app-505/lib/tasks$ 
EN

回答 1

Stack Overflow用户

发布于 2015-08-10 07:33:26

据我所知,您在运行rake任务时不会收到调试消息,因此电子邮件可能正在成功生成。我发现的唯一问题是您没有在生成的电子邮件中使用deliver方法,所以它没有被传递。你需要运行UserMailer.email_test.deliver来发送它。为了确保一切正常,我建议您在开发环境中安装letter_opener gem,它会在web浏览器选项卡中打开电子邮件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31908537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档