2014-04-02 65 views
0

假设你有Rails中的作用的邮件,使用delay一些模型被称为,例如:Rails的delayed_job的开发环境

class ReportMailer < ActionMailer::Base 

    default from: "[email protected]" 

    def order_received(order) 
    @order = order 
    mail(:to => @order.shop.email, :subject => "You have a new order on Shopstar") 
    end 
end 

order.rb:

 if self.shop.email_preference.on_order? 
     ReportMailer.delay.order_received(self) unless self.source == "pos" 
     end 

请问这个从开发环境发送邮件?

这会发送生产版本的邮件吗?

回答

0

这会从开发环境发送邮件吗?

根据您的STMP设置

Rails有设置config.action_mailer,你可以在这两个config/environments/development.rb & config/environments/production.rb定义它会发送一封电子邮件:

#config/environments/development.rb 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.smtp_settings = { 
     :address    => "smtp.gmail.com", 
     :port     => 587, 
     :domain    => "************.co.uk", 
     :user_name   => "****@gmail.com", 
     :password    => ENV["gmail"], 
     :authentication  => :plain, 
     :enable_starttls_auto => true 
    } 
    config.action_mailer.default_url_options = { :host => "localhost:3000"} 
哪种环境中,您在运行 delayed_job

,您需要确保这些详细信息设置在您的环境配置文件中

+0

production.rb和development.rb都有相同的stmp设置。 –

+0

有一行说:'config.consider_all_requests_local = true' in development.rb ..这可能是一个可能的影响吗? –

+0

这将基本上说明是否在运行应用程序时将请求威胁为开发(本地)或生产。所以这取决于你的系统是如何设置的,它可以产生多大的影响:) –

1

延迟岗职工需要运行,

发展方式运行:

RAILS_ENV=development bin/delayed_job start 

在生产环境中,应运行:

RAILS_ENV=production bin/delayed_job start 

上面的命令为轨道4,对于Rails 3你应该这样做:

script/delayed_job而不是bin/delayed_job

检查delayed_jobs页面了解更多details

0

这是否会从开发环境发送邮件? 这会发送生产版本的邮件吗?

它完全取决于每个文件中的环境设置SMTP(development.rb,production.rb)

为了在您的环境中使用延迟作业需要运行的工作在后台处理这个问题。尝试看看领班宝石来帮助你,可以运行服务器和工人只是使用领班开始。

0

由于没有改变环境配置,它不会发送电子邮件,它会在生产中发送电子邮件。

您应该看到config/environments/development.rb是这样的:

config.action_mailer.perform_deliveries = false 

它防止在开发环境中发送电子邮件。你可以找到在configuration guide

上行动邮件的配置选项的详细信息,如果您正在推迟发送邮件,那么你需要太处理您的延迟作业不会忘记。

0

首先让我回答你的第二个问题,从系统发送邮件是否live/development,你需要smtp设置。对于SMTP设置示例,您可以查看http://guides.rubyonrails.org/action_mailer_basics.html

其次,此配置设置进入其中一个环境文件。它所在的环境文件取决于您的应用程序正在运行的环境。如果您的服务器正在开发环境中运行,那么这些更改将在config/environments/development.rb

希望澄清。