Cómo cambiar la URL de mailling para el entorno de ensayo

Creé un nuevo entorno de ensayo mediante el uso de un command de horquilla en mi server de producción. Ahora, para el logging de usuario, envié un correo al usuario para la authentication, ahora para el server de transición, ¿cómo puedo cambiar esa url de envío? En mi caso, la dirección de correo del server de transferencia todavía es de mi server de producción.

testing esto,

config.action_mailer.default_url_options = { host: "example.com" } 

Establezca un host pnetworkingeterminado que se utilizará en todos los publicistas configurando la opción: host como una opción de configuration en config/application.rb consulte este enlace ( http://api.rubyonrails.org/classes/ActionMailer/Base.html )

Puede crear el file: config/initializers/action_mailer.rb con los siguientes contenidos:

 # config/initializers/action_mailer.rb if Rails.env.development? # Settings for mailcatcher on dev enviroment Rails.application.config.action_mailer.tap do |action_mailer| action_mailer.default_url_options = { host: 'dev-domain.dev', port: 3000 } action_mailer.delivery_method = :smtp action_mailer.perform_deliveries = true action_mailer.raise_delivery_errors = false action_mailer.smtp_settings = { address: "localhost", port: 1025 } end end if Rails.env.production? # Define settings for Production SMTP Server Rails.application.config.action_mailer.tap do |action_mailer| action_mailer.default_url_options = { host: 'production-domain.com' } action_mailer.delivery_method = :smtp action_mailer.perform_deliveries = true action_mailer.raise_delivery_errors = true action_mailer.smtp_settings = { address: 'mail.server.com', port: '465', authentication: :plain, user_name: 'noreply@production-domain.com', password: '', domain: 'production-domain.com', enable_starttls_auto: false, ssl: true } end end if Rails.env.staging? # Define settings for Staging SMTP Server Rails.application.config.action_mailer.tap do |action_mailer| action_mailer.default_url_options = { host: 'staging-domain.com' } action_mailer.delivery_method = :smtp action_mailer.perform_deliveries = true action_mailer.raise_delivery_errors = true action_mailer.smtp_settings = { address: 'mail.staging-server.com', port: '465', authentication: :plain, user_name: 'noreply@staging-domain.com', password: '', domain: 'staging-domain.com', enable_starttls_auto: false, ssl: true } end end 

Puede usar una variable de entorno para la URL de la aplicación como se explica aquí , por ejemplo, APPLICATION_URL = ' http://foo.herokuapp.com ' en el entorno de producción y APPLICATION_URL = ' http://foo-staging.herokuapp.com ' en el entorno de ensayo . Luego puede usar diferentes URL en diferentes entornos, usando estas variables de entorno en su código.