2010-10-18 10 views
8

estoy usando SendGrid para enviar mensajes de correo electrónico en Heroku ...rieles ActionMailer con SendGrid

El problema hasta ahora es tiempo que funciona muy bien en Heroku, en mi máquina local se produce un error.

Ahora mismo tengo SendGrig instalar aquí, config/setup_mail.rb:

ActionMailer::Base.smtp_settings = { 
    :address  => "smtp.sendgrid.net", 
    :port   => "25", 
    :authentication => :plain, 
    :user_name  => ENV['SENDGRID_USERNAME'], 
    :password  => ENV['SENDGRID_PASSWORD'], 
    :domain   => ENV['SENDGRID_DOMAIN'] 
} 

Qué es una forma Heroku/SendGrid para permitir que me asegure mis anuncios publicitarios trabajan en la DEV. ¿Es este archivo setup_mail.rb algo bueno? ¿Debería estar en el archivo env? ¿Algún otro pensamiento?

Gracias

Respuesta

11

Usando config/environments/[development.rb | production.rb] como se menciona arriba, parece que es el camino a seguir. Simplemente ponga la configuración de ActionMailer en cualquiera de esos archivos y cámbiela para adaptarla al entorno de desarrollo de producción.

También puede encontrar sus credenciales SendGrid utilizados por Heroku emitiendo el siguiente comando:

heroku config --long

Estas credenciales se utilizan para toda la autenticación SendGrid (autenticación SMTP, Website iniciar sesión para ver las estadísticas de acceso, etc., API)

- Joe

SendGrid

+2

Parece que 'heroku config --long' ya no funciona. 'heroku config: get SENDGRID_USERNAME' y' heroku config: get SENDGRID_PASSWORD' le dan la misma información. –

+5

o simplemente 'heroku config' sin los params –

4

Sólo hay que establecer las variables de entorno en el entorno de desarrollo para SENDGRID_USERNAME, SENDGRID_PASSWORD y SENDGRID_DOMAIN. Entonces funcionará.

Puede obtener los valores correctos para estos desde su aplicación Heroku. Abra la consola heroku y obtenga los valores de ENV['SENDGRID_USERNAME'], etc.

O simplemente use un conjunto diferente de configuraciones SMTP localmente. O use sendmail o algo así.

+0

Gracias, "use un conjunto diferente de configuraciones SMTP localmente", eso es exactamente lo que intento aprender a hacer. ¿Cuál es la forma correcta en Rails de realizar esta configuración en entornos envs? – AnApprentice

+0

Creo que puede establecer 'ActionMailer :: Base.smtp_settings' en cada uno de los archivos de inicializador de entorno (' config/environments/foo.rb'). No estoy exactamente seguro en el Camino de Rails aquí; No he configurado el correo de esta manera por un tiempo. – tfe

+1

Ejecuto varias aplicaciones en Heroku con SendGrid, pero me encontré con el mismo problema (deseando enviar correo localmente así como en Heroku). Lo que hice fue ir a SendGrid y registrarme en una cuenta. Luego tenía el nombre de usuario y la contraseña que podía configurar en la aplicación para todos los entornos, y esas credenciales no estaban bloqueadas dentro de la aplicación ENOV de la aplicación Heroku. – tfe

Cuestiones relacionadas