Estoy en Heroku, y los correos electrónicos no se envían en desarrollo, sino que se envían correctamente en producción. Me gustaría ejecutar una instancia de estadificación separada en Heroku, pero no quiero que se envíen correos electrónicos (solo a un registro).¿Cómo configuro Rails para deshabilitar el envío de correos electrónicos reales durante la etapa de transición?
Respuesta
poner esto en su archivo environment.rb
config.action_mailer.delivery_method = :test
Se debe dejar de enviar el correo al servidor de correo, creo que hay una: la opción de registro, pero no lo he probado.
Esta línea de test.rb dice ActionMailer no entregar mensajes de correo electrónico:
config.action_mailer.delivery_method = :test
En su lugar, se acumulan en la matriz ActionMailer :: Base.deliveries.
Tendrá que configurar un entorno de ensayo para su aplicación y configurar Heroku para usar ese entorno en su instancia de ensayo.
Las aplicaciones que usan la gema Mail (incluidos los rieles> = 3.0 proyectos) pueden usar la gema safety_mailer. Especifique un dominio (o un conjunto de dominios, o una palabra mágica en la dirección de correo electrónico) al que pueda acceder el correo electrónico, y el correo electrónico a todos los demás dominios se descarta silenciosamente.
https://github.com/cluesque/safety_mailer
Añadir la gema a su Gemfile
, especificando los grupos (probablemente no producción) para incluirlo en.
gem "safety_mailer", :group => :development
No se olvide de bundle install
instalar
En su entorno archivo config/environments/development.rb
configurarlo, y algunas expresiones regulares.
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"
}
}
... y ahora, el correo electrónico a [email protected], [email protected], [email protected] todos son enviadas y correo electrónico a otros destinatarios (como los usuarios reales en el la base de datos de producción que copió a un servidor de prueba) está suprimida.
Te puede interesar mailtrap.io (, descargo de responsabilidad: Estoy afiliado a este producto). Es una herramienta perfecta para probar entregas de correo electrónico en desarrollo y producción. Todo lo que tiene que hacer es configurar mailtrap.io como un servidor SMTP en el entorno de ensayo config:
config.action_mailer.smtp_settings = {
:address => "mailtrap.io",
:port => 2525,
:authentication => :plain,
:user_name => "LOGIN",
:password => "PASSWORD"
}
teniendo esta prueba todos sus correos electrónicos enviados en env puesta en escena se almacenarán en mailtrap de vista y compartir. Pero ninguno de ellos será enviado a las direcciones reales. Puedes usarlo en desarrollo también. Y por cierto, ¡es totalmente gratis!
¡Absolutamente práctico! Funciona maravillosamente –
Veo que la gente sugiere usar Mailtrap.io. La buena alternativa es Debug Mail. Usar es bastante simple.
El correo de depuración se ve como un buen servicio funcionalmente, pero desde una perspectiva de seguridad advertiría a los desarrolladores que no envíen el almacenamiento provisional a un tercero relativamente desconocido como este. – Kelseydh
Utilizamos maildev, que puede instalar localmente. Ideal para entornos de desarrollo y puesta en escena, fácil de instalar en una variedad de pilas tecnológicas.
Dependiendo de sus opciones
Si quieres una manera conveniente de recibir mensajes de correo electrónico para la depuración, etc. Recomiendo
https://github.com/fgrehm/letter_opener_web
, lo que permitirá ahorrar correos electrónicos a nivel local, y proporcionar una URL para navegar por los correos electrónicos que se enviaron. Sin correo electrónico se envía fuera, y puede muy bien ver la salida en su navegadorSi usted quiere ser capaz de abrir archivos de correo electrónico con sus clientes de correo electrónico, usted debe elegir un adaptador
:file
para ActionMailer (configurar enconfig/environments/your_env.rb
)Si desea un entorno real similar a la producción, le sugiero que configure un interceptor de correo electrónico que reescriba el TO/CC/BCC en un buzón real de su elección, de esta manera puede conservar y probar su original Adaptador de 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. Probar el envío de correos electrónicos
- 2. Envío de "en nombre de" correos electrónicos
- 3. Envío de correos electrónicos de mhtml - C#
- 4. envío de correos electrónicos en aplicaciones web
- 5. Envío de correos electrónicos en Playframework 2.0
- 6. Envío de correos electrónicos con WAMP
- 7. ¿Cómo envío correos electrónicos desde la línea de comandos?
- 8. Opinión sobre el envío de correos electrónicos de php
- 9. El control de la tala y el envío de correos electrónicos en diferentes entornos
- 10. ¿Cómo envío correos electrónicos firmados desde la aplicación C#?
- 11. Retrasando el envío de correos electrónicos en C#
- 12. Envío de cartas Rails 3 + action - No se puede enviar un bucle para enviar correos electrónicos
- 13. ¿Cómo mejorar el envío de correos electrónicos y la fiabilidad de la entrega?
- 14. Envío de correos electrónicos a través de SMTP con PHPMailer
- 15. Envío de correos electrónicos en JAVA EE 6
- 16. Envío de correos electrónicos en hilos separados usando QueueUserWorkItem
- 17. Envío de correos electrónicos con archivos adjuntos programáticamente en ASP.NET
- 18. rieles Mailer: envío de correos electrónicos a un archivo local
- 19. PHP enlaces/correos electrónicos
- 20. Subprocesos de fondo ASP.Net MVC para la creación y envío de correos electrónicos
- 21. Configurando el dispositivo para enviar correos electrónicos
- 22. Cómo enviar correos electrónicos con BCC en Rails 3
- 23. ¿Cómo configuro mi VPS de Ubuntu para enviar correos salientes?
- 24. Detectar correos electrónicos de respuesta automática programáticamente
- 25. Problemas con el envío de correos electrónicos de notificación de SQL Server 2008
- 26. problemas de spam con el envío de millones de correos electrónicos
- 27. Enviar correos electrónicos asíncronos
- 28. ¿Cómo enviar correos electrónicos firmados de java?
- 29. correos electrónicos a veces se revueltos
- 30. PHP, sendmail y transportes: cómo acelerar el envío de correos
Sin embargo, probablemente lo desee en un archivo 'environments/staging.rb' separado, y no en el archivo global' environment.rb'. –