2014-04-02 93 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

希望澄清。