plan per day ruby-on-rails heroku actionmailer sendgrid

ruby-on-rails - per - sendgrid quota



Problemas de envío de Sendgrid/correo electrónico en Ruby on Rails(alojado en Heroku) (3)

Tengo problemas para que sendgrid envíe correos electrónicos con éxito en una aplicación de Rails 3.1 que usa authlogic para la autenticación y se está implementando en heroku. Tengo la siguiente configuración de correo de acción en config / environment / [development.rb and production.rb]:

config.action_mailer.delivery_method = :smtp config.action_mailer.default_url_options = { :host => ''localhost:3000'' } config.action_mailer.default_charset = "utf-8" config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true config.action_mailer.smtp_settings = { :address => ''smtp.sendgrid.net'', :port => 587, :domain => ENV[''SENDGRID_DOMAIN''], :user_name => ENV[''SENDGRID_USERNAME''], :password => ENV[''SENDGRID_PASSWORD''], :authentication => ''plain'', :enable_starttls_auto => true }

para production.rb, el código anterior es el mismo a excepción de

config.action_mailer.default_url_options = { :host => [app name in heroku] }

cuando lo ejecuto en modo de desarrollo, me aparece el siguiente error:

Completed 500 Internal Server Error in 21740ms Net::SMTPFatalError (550 Cannot receive from specified address notification@[app-domain]: Unauthenticated senders not allowed ):

Ahora realmente no sé cómo configurarlo para que funcione. ¿Alguien con alguna experiencia previa en la configuración de sendgrid en heroku y rails sabe qué está pasando?

Muchas gracias. ¡¡¡Ustedes son los mejores!!!


Pasé medio día en esto y finalmente conseguí que el mío funcionara ahora. Bastante frustrado porque se debió a un error de documentación deficiente. Por cierto, estoy corriendo Rails 3.1 y Cedar stack en Heroku.

Así que http://devcenter.heroku.com/articles/sendgrid le dirá que ponga su configuración SMTP en config / initializers / mail.rb. PERO ... en http://docs.sendgrid.com/documentation/get-started/integrate/examples/rails-example-using-smtp/ dice que ponga todas sus cosas de configuración SMTP en config / environment.rb en lugar de config / initializers / mail.rb

Entonces la solución es poner eso en su archivo environment.rb. Así es como se ve mi environment.rb:

# Load the rails application require File.expand_path(''../application'', __FILE__) # Initialize the rails application Freelanceful::Application.initialize! # Configuration for using SendGrid on Heroku ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = { :user_name => "yourSendGridusernameyougetfromheroku", :password => "yourSendGridpasswordyougetfromheroku", :domain => "staging.freelanceful.com", :address => "smtp.sendgrid.net", :port => 587, :authentication => :plain, :enable_starttls_auto => true }

Para obtener su nombre de usuario y contraseña de SendGrid, escriba

$ heroku config -long

Espero que ayude .. y más personas en el futuro de este dolor de cabeza.


Supongo que te refieres al modo de desarrollo como localmente? Si es así, no creo que el complemento SendGrid le permita enviar correos electrónicos desde fuera de la red de Heroku (ya que tienen cuentas independientes que preferirían que usted use).

Dicho esto, no es necesario configurar el correo en producción cuando se utiliza el complemento SendGrid, ya que se configura de forma automática para usted cuando implementa su aplicación.

Por lo tanto, puede eliminar su código config.action_mailer.smtp_settings y simplemente usar el valor predeterminado en el desarrollo.


También tenga en cuenta que si está ejecutando su aplicación Heroku en la pila de bambú, no necesita configurar sus ajustes en el archivo environment.rb ya que Heroku lo hace por usted.

Sin embargo, es necesario que presione git push al menos una vez después de haber activado la aplicación en Heroku para establecer esta configuración. Cometí ese error esta mañana y encontré tu publicación.