2010-06-16 18 views

回答

6

把這個在您的environment.rb文件中

config.action_mailer.delivery_method = :test 

應該停止發送郵件到郵件服務器,我認爲是有:登錄選項,但我還沒有嘗試過了。

+8

儘管你可能希望它在單獨的'environments/staging.rb'文件中,而不是在全局'environment.rb'文件中。 – 2010-06-17 01:04:57

16

這條線test.rb講述的ActionMailer不提供電子郵件:

config.action_mailer.delivery_method = :test 

相反,他們的的ActionMailer :: Base.deliveries陣列中積累。

您需要爲應用程序設置一個臨時環境,並將Heroku配置爲在臨時實例上使用該環境。

11

使用Mail gem(包括rails> = 3.0項目)的應用程序可以使用safety_mailer gem。指定允許電子郵件進入的域(或一組域或電子郵件地址中的魔術字),並通過電子郵件向所有其他域靜靜地放棄。

https://github.com/cluesque/safety_mailer

寶石添加到您的Gemfile,指定組(可能不生產),以包括進去。

gem "safety_mailer", :group => :development 

不要忘記bundle install安裝

在您的環境文件config/environments/development.rb配置它和一些正則表達式。

config.action_mailer.delivery_method = :safety_mailer 
config.action_mailer.safety_mailer_settings = { 
    allowed_matchers: [ /mydomain.com/, /[email protected]/, /super_secret_test/ ], 
    delivery_method: :smtp, 
    delivery_method_settings: { 
    :address => "smtp.mydomain.com", 
    :port => 25, 
    :domain => "mydomain.com", 
    :authentication => :plain, 
    :user_name => "[email protected]", 
    :password => "password" 
    } 
} 

...現在,電子郵件[email protected][email protected][email protected]所有被髮送 和電子郵件給其他人(就像在真正的用戶生產數據庫複製到測試服務器)被抑制。

8

您可能感興趣的mailtrap.io免責聲明:我隸屬於此產品)。它是在開發和生產中測試電子郵件交付的完美工具。所有你需要做的是設置mailtrap.io作爲SMTP服務器暫存環境的配置:

config.action_mailer.smtp_settings = { 
    :address => "mailtrap.io", 
    :port => 2525, 
    :authentication => :plain, 
    :user_name => "LOGIN", 
    :password => "PASSWORD" 
    } 

有分期ENV發送這所有測試的電子郵件將被存儲在mailtrap用於查看和共享。但他們中的不會被髮送到真實地址。你也可以在開發中使用它。 順便說一句 - 它完全免費!

+1

絕對方便!精美的作品。 – 2012-10-22 06:34:33

3

我看到有人建議使用Mailtrap.io。很好的選擇是Debug Mail。使用非常簡單。

+0

調試郵件在功能上看起來像一個很好的服務 - 但從安全角度來看,我會提醒開發人員不要將暫存郵件發送給像這樣的相對未知的第三方。 – Kelseydh 2015-04-19 08:06:17

0

我們使用maildev,您可以在本地安裝。非常適合開發和登臺環境,易於安裝在各種技術棧中。

0

根據您的選擇

  • 如果你想接收的郵件調試的一種便捷方式,等等。我建議https://github.com/fgrehm/letter_opener_web,這將保存電子郵件本地,並提供一個URL,瀏覽已發送郵件。不發送電子郵件外,你可以很方便地看到在瀏覽器中輸出

  • 如果您希望能夠打開你的電子郵件客戶端的電子郵件文件,你應該選擇一個:file適配器的ActionMailer(在config/environments/your_env.rb配置)

  • 如果你想要一個真正的生產環境,我會建議配置一個電子郵件攔截器,將TO/CC/BCC重寫爲您選擇的真實郵箱,這樣您可以保留並測試您的原件ActionMailer適配器

    if Rails.env.staging? 
        class TestEmailsInterceptor 
        def self.delivering_email(mail) 
         mail.to = ['My Test Box <[email protected]>'] 
         # remove bcc, cc, etc. 
        end 
        end 
        ActionMailer::Base.register_interceptor(TestEmailsInterceptor) 
    end 
    
相關問題