Обнаружена ошибка конца файла в письме, отправленном работнику sidekiq с Mailgun - PullRequest
0 голосов
/ 04 октября 2019

Я только начал получать сообщения об ошибке «ошибка конца файла» из электронного письма, отправленного в sidekiq работник пару дней назад.

Ниже приведен код конфигурации для почтовой программы действий.

  config.app_domain = 'www.mydomain.com'
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.default_url_options = {host: config.app_domain }

  config.action_mailer.smtp_settings = {
    address: 'smtp.mailgun.org',
    port: '587',
    enable_starttls_auto: true,
    user_name: 'postmaster@mydomain.com',
    password: 'somepassword',
    authentication: :plain,
    domain: 'mydomain.com',
  }

Странно видеть, что большинство писем отправляются правильно, но сообщается только о нескольких письмах. Однако я не в состоянии игнорировать эти проблемы в случае возможного опасного последствия.

Пожалуйста, поделитесь любыми мыслями, идеями, как в идеале справиться с этой ошибкой.

Best

1 Ответ

0 голосов
/ 04 октября 2019

В ruby ​​сокеты являются объектами ввода-вывода. EOFError (Ошибка конца файла) возникает, когда операция над объектом ввода-вывода ссылается на конец файла.

Удаленный почтовый сервер неожиданно закрывает сокет. Если вы хотите игнорировать этот тип ошибки, вам нужно написать свой собственный Worker, чтобы заменить встроенное расширение задержки ActionMailer в Sidekiq. Если вы хотите заставить его замолчать, вы можете сделать что-то вроде

begin
  # your code to send email here
rescue EOFError
 # retry by calling the same worker again(if required)
end

Получать оповещения об оповещениях о сбоях доставки на основе временных рядов, которые могут быть в процентах или количестве не доставленных писем.

...