[英]Can i send and receive emails using ActionMailer in development env.?
[英]How can I configure ActionMailer to conditionally send emails in development mode?
我将ActionMailer配置为在开发模式下通过gmail发送电子邮件。
配置/ development.rb
config.action_mailer.default_url_options = { host: ENV["MY_DOMAIN"] }
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
domain: ENV["MY_DOMAIN"],
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["MY_USERNAME"],
password: ENV["MY_PASSWORD"]
}
我有这个设置,所以我的设计师可以触发并将测试HTML电子邮件发送到指定的地址,以便在各种浏览器/设备中进行测试。
但是,在开发模式下,我想阻止所有未发送到该指定电子邮件地址的外发电子邮件。
我正在寻找类似的东西:
config.action_mailer.perform_deliveries = target_is_designated_email_address?
...但我需要检查Mail实例,以确保它被发送到正确的地址。
有任何想法吗?
谢谢!
查看ActionMailer使用的邮件gem中的Mail拦截器。 您可以在ActionMailer上的这个railscast中找到更多关于它们的信息。
相关部分直接来自railscast:
创建一个类来重定向邮件。
class DevelopmentMailInterceptor
def self.delivering_email(message)
message.subject = "[#{message.to}] #{message.subject}"
message.to = "eifion@asciicasts.com"
end
end
仅在开发模式下注册拦截器:
Mail.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development?
然后它将用“[youremail@blahbalh.com]某些主题”替换主题行,并将消息重定向到您想要的任何人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.