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.
Sicherstellen, dass alle erforderlichen Ports offen sind in der Produktionsumgebung ist. – bwest
Die Portnummern SendGrid und Mandrill sind beide gleich (587). Es hat mit Mandrill funktioniert, ohne etwas zu verändern. –
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. –