У меня есть приложение Rails
, размещенное на сервере Digitalocean
.Я использую email server
от моего провайдера домена (checkdomain.de
).Я настроил почтовый сервер со следующими конфигурациями:
config.action_mailer.smtp_settings = {
address: "host162.checkdomain.de",
port: 587,
domain: <my-domain>,
authentication: "plain",
enable_starttls_auto: true,
user_name: <my-username>,
password: <my-password>,
:openssl_verify_mode => 'none'
}
Я использую sidekiq
для фоновых заданий по отправке электронной почты.Иногда, когда я пытаюсь отправить emails
, я получаю следующие ошибки:
Errno::EADDRNOTAVAIL: Cannot assign requested address - connect(2) for "host162.checkdomain.de" port 587
ИЛИ
SocketError: getaddrinfo: Temporary failure in name resolution
Ниже приведены настройки sidekiq
в моем приложении:
sidekiq_config = { url: ENV['REDIS_URL'], password: ENV['REDIS_PASSWORD'] }
Sidekiq.configure_server do |config|
config.redis = sidekiq_config
end
Sidekiq.configure_client do |config|
config.redis = sidekiq_config
end
Когда я пытаюсь отправить электронную почту без использования sidekiq
, иногда я получаю такие же ошибки.Я очень озадачен этой проблемой, потому что иногда я могу успешно отправлять электронные письма, а иногда эта ошибка возникает без изменений.Я связался с digitalocean
(провайдер сервера), чтобы убедиться, что все порты smtp
работают нормально и не заблокированы ими.Я видел, что это может быть проблемой из-за включения службы IPV6
вместо digitalocean
, которая приводит к блокировке smtp
.У меня также не включено firewalls
для моей капли.
По этой причине я изменил конфигурации своей капли, чтобы предпочесть IPV4
над IPV6
для электронных писем.Я раскомментировал следующую строку в файле /etc/gai.conf
и перезагрузил систему
#precedence ::ffff:0:0/96 100
Но, к сожалению, это также не помогло.Теперь я запутался в том, что может быть актуальной проблемой для этой проблемы.Единственное, что я могу попробовать, это полностью отключить IPV6
из моей капли вручную, так как digitalocean
не позволяет делать это автоматически.Я не уверен, будет ли это действительно полезно или может оказать плохое влияние на сервер, потому что мы не можем выдержать простои сервера, или это может повлиять на домен или может сделать домен недоступным.Отправка emails
является наиболее важной частью нашего приложения, и в настоящее время я могу справиться с ней, пытаясь отправить электронную почту в случае сбоя, но это, очевидно, не хорошее решение, есть вероятность того, что электронная почта не будет отправлена даже после многократных повторных попыток.Пожалуйста, помогите мне: /