2014-10-15 21 views
5

Mam problem z dostarczaniem wiadomości e-mail na serwerze produkcyjnym. Kiedy Mailer przetwarzane nową wiadomość, wywołuje wyjątek Net::OpenTimeout (execution expired)Net :: Wyjątek OpenTimeout (wykonanie wygasł) z Railsami mailer

Moje ustawienia SMTP:

#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 

Moje ustawienia środowiska:

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

z dzienników:

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

Myślę, że problem w konfiguracji ipv6 na moim VPS. Kiedy próbuję wywołać z terminala komenda 'telnet smtp.gmail.com 587' połączenie trwa około 1 minutę – MicRum

Odpowiedz

3

miałem ten sam problem, w moim przypadku to dlatego platformy Google Cloud Compute blokuje połączenia wychodzące do serwerów SMTP spoza domeny Google na portach 25, 465, i 587.

Aby rozwiązać ten problem, musieliśmy połączyć się z niestandardowym portem SMTP (większość platform mailerowych opartych na API obsługuje także 2525 z tego powodu).

+0

Port 25 pracował dla mnie. Wypróbowałem mnóstwo portów i może to zależeć od twojego dostawcy Internetu lub czegoś takiego ... Nie jesteś ekspertem w tym zakresie. –