我以两种方式使用了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:名称或服务未知
任何人都可以帮助我吗? 提前谢谢
答案 0 :(得分:0)
您需要在服务器配置中禁用ipv6。一旦完成,您将看不到错误。