我有一个非常简单的 Rails 应用程序,我想在创建工作请求时发送电子邮件。我对 Rails 很陌生,所以我在网上找到了一些关于如何做的细节。设置邮件程序,对其进行配置等。设置我的模板。美好的。
在我的 work_requests_controller.rb 我有:
def create
@work_request = WorkRequest.new(params[:work_request])
respond_to do |format|
if @work_request.save
# Tell the mailer to send a welcome Email after save
PersonMailer.work_request_init_email(@work_request).deliver
format.html... etc.
知道邮件正在工作,因为如果我去 Rails 控制台,创建 WorkRequest 对象,并使用完全相同的行 (PersonMailer.work...) 它发送邮件就好了。但是当我在我的应用程序中创建工作请求时,没有收到邮件,浏览器或日志/development.log 中也没有显示错误。
在服务器输出中,我看到呈现了 HTML 版本,我看到了有关电子邮件的信息,它看起来既笨拙又笨拙。由于我没有收到任何错误,我不知道如何继续。
最佳答案
好吧,我正式是个白痴。 :-)
在处理另一个问题时,我正在编辑 application.rb。我想我需要重新启动服务器才能看到这些更改。突然,电子邮件从应用程序内部开始工作。
哦!我没有意识到(菜鸟错误)我需要重新启动应用程序的服务器才能看到我昨天放在 environment.rb 中的电子邮件配置。出于某种原因,我从未尝试过。
我现在看到只有在服务器启动时才会运行其他组件。因此,当然,当我启动控制台时,它当然会运行所有初始化程序,因此电子邮件配置对其可见并发送了电子邮件。
所以答案是,重启你的服务器,愚蠢。好吧,无论如何,至少它现在可以工作了......我会带它去我能拿到的地方!
关于ruby-on-rails - 从 Rails 发送邮件在控制台上有效,但在我的应用程序中无效...?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5253227/