我在Heroku上,電子郵件不會在開發過程中發送出去,而是正在正式發送。我想在Heroku上運行一個單獨的臨時實例,但不希望發送電子郵件(僅限於日誌)。如何配置Rails禁止在分期中發送真正的電子郵件?
回答
把這個在您的environment.rb文件中
config.action_mailer.delivery_method = :test
應該停止發送郵件到郵件服務器,我認爲是有:登錄選項,但我還沒有嘗試過了。
這條線test.rb講述的ActionMailer不提供電子郵件:
config.action_mailer.delivery_method = :test
相反,他們的的ActionMailer :: Base.deliveries陣列中積累。
您需要爲應用程序設置一個臨時環境,並將Heroku配置爲在臨時實例上使用該環境。
使用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]所有被髮送 和電子郵件給其他人(就像在真正的用戶生產數據庫複製到測試服務器)被抑制。
您可能感興趣的mailtrap.io(免責聲明:我隸屬於此產品)。它是在開發和生產中測試電子郵件交付的完美工具。所有你需要做的是設置mailtrap.io作爲SMTP服務器暫存環境的配置:
config.action_mailer.smtp_settings = {
:address => "mailtrap.io",
:port => 2525,
:authentication => :plain,
:user_name => "LOGIN",
:password => "PASSWORD"
}
有分期ENV發送這所有測試的電子郵件將被存儲在mailtrap用於查看和共享。但他們中的不會被髮送到真實地址。你也可以在開發中使用它。 順便說一句 - 它完全免費!
絕對方便!精美的作品。 – 2012-10-22 06:34:33
我看到有人建議使用Mailtrap.io。很好的選擇是Debug Mail。使用非常簡單。
調試郵件在功能上看起來像一個很好的服務 - 但從安全角度來看,我會提醒開發人員不要將暫存郵件發送給像這樣的相對未知的第三方。 – Kelseydh 2015-04-19 08:06:17
我們使用maildev,您可以在本地安裝。非常適合開發和登臺環境,易於安裝在各種技術棧中。
根據您的選擇
如果你想接收的郵件調試的一種便捷方式,等等。我建議
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
- 1. 配置爲「真正的電子郵件發送」?
- 2. 的Rails:發送定期電子郵件
- 3. 如何配置Rails發送500錯誤的電子郵件?
- 4. 配置jboss發送電子郵件
- 5. 配置設計發送電子郵件
- 6. 配置SmtpServer發送電子郵件
- 7. ActionMailer - 根據日期條件在rails中發送電子郵件
- 8. 使用入門:在延期工作的Rails中發送電子郵件發送電子郵件
- 9. 發送電子郵件Rails中
- 10. 手動發送電子郵件的Rails
- 11. 如何在Android中發送電子郵件正文中的ArrayList?
- 12. 如何爲Ruby On Rails設置Postfix以發送電子郵件
- 13. 如何阻止我的電子郵件作爲批量電子郵件發送?
- 14. 定期發送的電子郵件操作Rails中
- 15. 如何在Ruby On Rails中發送多封電子郵件
- 16. 正在發送電子郵件--MFMailComposeResult
- 17. 如何發送電子郵件到特定的電子郵件?
- 18. Laravel發送電子郵件,配置併發送腳本
- 19. 使用php/apache發送電子郵件 - 配置發送地址
- 20. 如何配置WAMP(localhost)使用Gmail發送電子郵件?
- 21. 谷歌appengine - 如何配置發送和接收電子郵件
- 22. 我該如何配置php swiftmailer發送電子郵件
- 23. 如何配置Jenkins發送電子郵件?
- 24. 如何配置設計gem發送電子郵件到資源?
- 25. 如何配置服務器使用cPanel發送電子郵件?
- 26. 如何配置xampp發送電子郵件
- 27. Rails 3 Devise:如何發送驗證電子郵件到其他電子郵件
- 28. 如何設置發送郵件寶石的HTML電子郵件?
- 29. 如何發送電子郵件在Java
- 30. 如何在django發送電子郵件?
儘管你可能希望它在單獨的'environments/staging.rb'文件中,而不是在全局'environment.rb'文件中。 – 2010-06-17 01:04:57