2016-04-09 4 views
0

Ich habe eine Ruby on Rails (v4.1.5) -Anwendung, die auf RedHats OpenShift ausgeführt wird. Ich war dabei, von Mandrill zu SendGrid zu wechseln. In Entwicklung konnte ich folgendes meine development.rb Konfigurationsdatei hinzufügen:Transaktionale E-Mail wird nicht vom Rails-Server in der Produktion an OpenShift gesendet, funktioniert aber in der Entwicklung.

ActionMailer::Base.smtp_settings = { 
    :address => "smtp.sendgrid.net", 
    :port  => 587, 
    :authentication => "plain", 
    :domain => ENV["DOMAIN_NAME"], 
    :enable_starttls_auto => true, 
    :user_name => ENV["SENDGRID_USERNAME"], 
    :password => ENV["SENDGRID_PASSWORD"] 
} 

Und ich weiterhin Action die gleiche Weise, die ich vorher benutzen konnten. Ich testete es lokal und erhielt E-Mails und die Header zeigten, dass sie durch sendgrid kamen.

Dann habe ich diesen Code zu production.rb hinzugefügt und zu OpenShift bereitgestellt. Ich fügte die neuen SENDGRID-Benutzernamen und Passwort-Umgebungsvariablen hinzu, die im obigen Code verwendet wurden, und verifizierte, dass sie in OpenShift korrekt eingestellt waren.

Aber als ich es getestet habe, sagt die Protokolldatei, dass es die E-Mail an die richtige E-Mail-Adresse gesendet hat, aber es erscheint nicht auf meinem SendGrid-Dashboard und ich habe die E-Mail nicht erhalten.

Kennt jemand andere Protokolldateien auf OpenShift, die möglicherweise mehr Informationen anzeigen? Ich habe nur app-root/runtime/repo/log/production.log angeschaut.

Ich habe versucht, das Feld enable_starttls_auto oben zu entfernen, aber nichts hat sich geändert.

Wie kann ich dieses Problem beheben? Ich weiß nicht, ob es auf der OpenShift-Seite oder SendGrid ist.

+0

Sicherstellen, dass alle erforderlichen Ports offen sind in der Produktionsumgebung ist. – bwest

+0

Die Portnummern SendGrid und Mandrill sind beide gleich (587). Es hat mit Mandrill funktioniert, ohne etwas zu verändern. –

+0

Ich habe versucht, SendInBlue anstelle von SendGrid zu verwenden. Wiederum funktionierte es lokal in der Entwicklung, funktioniert aber nicht in OpenShift. Ich denke, das ist das Problem. –

Antwort

0

Dieser Artikel sollte helfen. Ich bin kein Ruby-Experte, also kann ich nicht wirklich helfen.

https://developers.openshift.com/external-services/sendgrid.html

Ich weiß, dass wir viele Anwender mit Openshift und sendgrid haben.

Hier ist ein PHP-Code Repo - Ich weiß, ich weiß nicht, die richtige Sprache, aber ein gutes Beispiel

https://github.com/sendgrid/openshift-sendgrid-php

+0

Ich mache das alles ziemlich viel, aber ich benutze es ActionMailer in Rails 4. ActionMailer verwendet das von ihnen erwähnte Mail-Juwel Ich habe auch andere SendGrid-Dokumente gefunden, die die Konfiguration zeigen, wenn ich ActionMailer verwende, was ich auch gemacht habe Ich glaube, das Problem liegt eher bei OpenShift, da ich das gleiche Ergebnis erhalte mit mehreren verschiedenen transaktionalen E-Mail-Diensten –

Verwandte Themen