Исключение истекшего выполнения при использовании rails actionmailer 4

Я использовал actionmailer двумя способами. Первый с Gmail SMTP с конфигурацией:-

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"
  ActionMailer::Base.delivery_method = :smtp # be sure to choose SMTP delivery
  ActionMailer::Base.smtp_settings = {
    :address              => "smtp.gmail.com",
    :port                 => "587",
    :domain               => "gmail.com",
    :user_name            => "some-username@gmail.com",
    :password             => "some-password",
    :authentication       => "plain",
    :enable_starttls_auto => true
  }

Это работает очень хорошо. Письмо было отправлено.

Проблема в том, когда я решаю использовать свой почтовый сервер на своем сервере с конфигурацией:-

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.default :charset => "utf-8"
  ActionMailer::Base.delivery_method = :smtp # be sure to choose SMTP delivery
  ActionMailer::Base.smtp_settings = {
    :address              => "mail.xgram.xyz",
    :port                 => "25",
    :domain               => "xgram.xyz",
    :user_name            => "some-username@xgram.xyz",
    :password             => "some-password",
    :authentication       => "plain",
    :enable_starttls_auto => true
  }

При такой конфигурации я получил эту ошибку в терминале

Net::OpenTimeout (срок выполнения истек):

и эта ошибка в браузере

исполнение истекло

К тому же, mail.xgram.xyz как имя сервера является действительным, потому что, когда я изменяю его на любое произвольное имя, ошибка будет

getaddrinfo: имя или служба неизвестна

Может кто-нибудь мне помочь? заранее спасибо

1 ответ

Вам необходимо отключить ipv6 в конфигурации вашего сервера. Как только это будет сделано, вы не увидите ошибку.

Другие вопросы по тегам