2014-10-15 4 views
5

Ich habe Probleme mit der Zustellung von E-Mails auf dem Produktionsserver. Wenn Mailer neue Nachricht verarbeitet, ruft Ausnahme Net::OpenTimeout (execution expired)Net :: OpenTimeout (Ausführung abgelaufen) Ausnahme mit Rails Mailer

Meine SMTP- Einstellungen:

#settings.yml 
production: 
    smtp: 
    address:  smtp.gmail.com 
    port:   587 
    domain:   mydomain.net 
    user_name:  [email protected] 
    password:  password 
    authentication: plain 
    enable_starttls_auto: true 

Meine Umgebungseinstellungen:

#production.rb 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = Settings.smtp.symbolize_keys 

Von Protokolle:

Sent mail to [email protected] (30010.1ms) 
I, [2014-10-15T12:59:22.371563 #19779] INFO -- : Completed 500 Internal Server Error in 30051ms 
F, [2014-10-15T12:59:22.373984 #19779] FATAL -- :. 
Net::OpenTimeout (execution expired): 
app/controllers/subscribers_controller.rb:9:in `create' 
+0

Ich denke, Problem in IPv6-Konfiguration auf meinem VPS. Wenn ich versuche, Anruf von Terminal-Befehl 'telnet smtp.gmail.com 587' Verbindung dauert etwa eine Minute – MicRum

Antwort

3

ich das gleiche Problem hatte, in meinem Fall war es, weil Google Cloud Compute-Plattform blockiert ausgehende Verbindungen zu SMTP-Servern außerhalb der Domain von Google auf den Ports 25, 465, und 587.

Um dieses Problem zu beheben, mussten wir eine Verbindung zu einem nicht standardmäßigen SMTP-Port herstellen (die meisten API-basierten Mailer-Plattformen unterstützen auch 2525 aus diesem Grund).

+0

Port 25 arbeitete für mich. Ich habe eine Menge Ports ausprobiert, und es kann von Ihrem ISP oder etwas abhängen ... Nicht ein Experte in diesem. –