2017-11-18 5 views
0

Ich habe damit Probleme für faaarrrrr zu lange. Ich habe mir buchstäblich zahllose Fragen angesehen, die meinen ähneln, und ich kann anscheinend nicht alle zur Arbeit bringen.Heroku Einrichten SendGrid Problem

Ich habe cloud9 ide verwendet und Pushing zu Heroku versucht, einfach eine einfache E-Mail mit SendGrid senden. Ich bin ziemlich sicher, dass das Problem in den Einstellungen in production.rb oder in der Art, wie ich heroku mit SendGrid eingerichtet habe, aber ich bin gerade am Ende meines Wissens.

config.action_mailer.default_url_options = { :host => 'http://tranquil-plateau-41839.herokuapp.com' } 

Ich habe dies in production.rb Datei in der Umgebung Ordner.

Das sitzt in meiner user.rb-Datei in einer if-Anweisung, die ausgeführt wird, wenn der Benutzer speichert. Ich habe eine Million verschiedene Kombinationen ausprobiert, um dies zum Laufen zu bringen und es scheint nicht so sein zu wollen.

Das ist, was ich von Heroku bekommen -Logs

2017-11-18T04:40:06.396183+00:00 app[web.1]: (2.1ms) COMMIT 
2017-11-18T04:40:06.396635+00:00 app[web.1]: Completed 302 Found in 140ms (ActiveRecord: 37.3ms) 
2017-11-18T04:40:06.396468+00:00 app[web.1]: Redirected to http://tranquil-plateau-41839.herokuapp.com/login 
2017-11-18T04:40:06.459084+00:00 app[web.1]: Started GET "/login" for 173.28.213.164 at 2017-11-18 04:40:06 +0000 
2017-11-18T04:40:06.460969+00:00 app[web.1]: Processing by SessionsController#new as HTML 
2017-11-18T04:40:06.462953+00:00 app[web.1]: Rendered sessions/new.html.haml within layouts/application (1.1ms) 
2017-11-18T04:40:06.464328+00:00 app[web.1]: Completed 200 OK in 3ms (Views: 2.7ms | ActiveRecord: 0.0ms) 
2017-11-18T04:40:06.465391+00:00 heroku[router]: at=info method=GET path="/login" host=tranquil-plateau-41839.herokuapp.com request_id=e079f0c1-4408-4c29-b4a0-0707004e02fc fwd="173.28.213.164" dyno=web.1 connect=0ms service=10ms status=200 bytes=2823 protocol=http 
2017-11-18T04:40:06.397638+00:00 heroku[router]: at=info method=POST path="/users" host=tranquil-plateau-41839.herokuapp.com request_id=f851ddf6-d55a-43b9-9631-a17e98fa47a4 fwd="173.28.213.164" dyno=web.1 connect=0ms service=147ms status=302 bytes=1064 protocol=http 

Es ist nicht eine Fehlermeldung zu sein scheint, und als ich an meiner SendGrid Website aussehen es hat keine Aktivität nicht einmal Anfragen oder prallt. Ich vermute also, dass mit meinen Konfigurationen etwas nicht stimmt.

Jede Hilfe würde sehr geschätzt werden Ich verliere meinen Verstand.

****** Aktualisiert *******

Dies ist nun meine production.rb Datei

config.action_mailer.default_url_options = { host: "http://tranquil-plateau- 
    41839.herokuapp.com" } 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.default :charset => "utf-8" 
    config.force_ssl = true 
    config.action_mailer.smtp_settings = { 
    :address => 'smtp.sendgrid.net', 
    :port => 587, 
    :domain => 'heroku.com', 
    :user_name => 'app***@heroku.com', 
    :password => 'secret', 
    :authentication => :plain, 
    :enable_starttls_auto => true 
    } 

Das ist mein development.rb Datei

config.action_mailer.delivery_method = :smtp 
config.action_mailer.default_url_options = { host:'localhost', port: '3000'} 
config.action_mailer.perform_deliveries = true 
config.action_mailer.raise_delivery_errors = true 
config.action_mailer.default :charset => "utf-8" 
config.action_mailer.smtp_settings = { 
    :address => "smtp.sendgrid.net", 
    :port => 2525, 
    :domain => 'localhost:3000', 
    :user_name => 'app****@heroku.com', 
    :password => 'secret', 
    :authentication => :plain, 
    :enable_starttls_auto => true 
} 

Ich habe das starke Gefühl, dass es meine Domäne oder mein Port ist, dass das Problem in der Produktion ist. In der Entwicklung durchlaufen die E-Mails jedoch erfolgreich. Ich habe eine Million verschiedene Varianten ausprobiert und ich kann es einfach nicht herausfinden.

+0

Wenn weitere Informationen benötigt werden, lassen Sie es mich wissen und ich werde es für Sie bekommen. – Stockster

+0

Die 'user_name' und' password' sollten Ihr Sendgrid Benutzername und Passwort sein. Sie sollten sie auch als Umgebungsvariablen festlegen, anstatt sie fest zu codieren, denn wenn Ihr Repository nicht privat ist, sind sie für andere sichtbar. Wenn Sie keine Fehlermeldung erhalten, wird die Nachricht wahrscheinlich nicht zugestellt. Daher würde ich Ihre user.rb-Datei überprüfen. – domi91c

+0

Mein Problem ist, dass ich E-Mails senden kann, wenn ich in der Entwicklungsumgebung bin, aber wenn ich nach Heroku schiebe, wird es nicht senden. Ich weiß oder zumindest ahnt sehr, dass es etwas mit den Domain/Portinformationen zu tun hat, kann es aber für mein Leben nicht herausfinden. – Stockster

Antwort

0

Ich habe es tatsächlich selbst herausgefunden. Das Problem war, dass Heroku nicht gerne gedrückte Zweige ist, so dass es die ganze Zeit korrekt war.

Ich musste schließlich mit dem Master zusammenführen und den Master zu Heroku schieben, damit es funktioniert.

Es gibt Möglichkeiten, Zweige zu Heroku zu pushen, aber ich hatte Schwierigkeiten, es zum Arbeiten zu bringen, sogar die Angabe, dass ich einen Zweig drücken und führen wollte.

Ich hoffe, das spart jemand Zeit in der Zukunft.