Исключение истекшего выполнения при использовании 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 в конфигурации вашего сервера. Как только это будет сделано, вы не увидите ошибку.