我使用sidekiq來排隊我的Rails應用程序將發送的電子郵件。發送電子郵件可用於開發,但在生產中,sidekiq會收到網絡超時錯誤。這是怎麼回事?Sidekiq上的Net :: OpenTimeout(執行過期)異常
這是我在production.rb
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 578,
domain: ENV["PPRODUCTION_DOMAIN"],
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"],
authentication: :plain,
enable_starttls_auto: true
}
config.active_job.queue_adapter = :sidekiq
我曾嘗試以下配置:
- 禁用IPv6和設置的IPv4作爲首選
- 使用非標準端口(2525),而不是587
- 嘗試通過
telnet smtp.gmail.com 587
連接。我收到以下錯誤:telnet: Unable to connect to remote host: Network is unreachable
。可能值得注意的是我在代理之後運行 - 在這種情況下是否應該有額外的設置? sudo ufw allow 587
我是一個Ubuntu 14.04服務器上,並使用麒麟和nginx的設置我的應用程序。
我一直在這個好幾天。 :(任何幫助將不勝感激
更新:
我也試過如下:
- 刪除sidekiq使用Rails的郵件發送電子郵件來代替。同樣的結果。
- 通過
telnet smtp.gmail.com 465
連接。這一個工程,所以我試着設置在生產中465端口,但我仍然得到同樣的錯誤。 - 刪除域,用我們的生產領域,並使用
localhost:3000
。什麼都沒發生。
1)嘗試刪除'域'選項,但我不認爲它有幫助。 2)一些提供商/主機阻塞所有SMTP流量。似乎這是你的情況,因爲你檢查了這個使用telnet命令。嘗試聯繫您的託管支持。 –
你嘗試過'telnet 74.125.206.108 587'嗎?也許IPv6不會被禁用。代理可以指示問題。也許網絡中的防火牆禁止smtp訪問外部服務器。 – slowjack2k
@ slowjack2k我收到以下錯誤:'telnet:無法連接到遠程主機:連接超時'。 'cat/proc/sys/net/ipv6/conf/all/disable_ipv6'也給了我一個'1'的輸出,所以我起訴了IPv6被禁用。 – meyagen