我正在为我的Rails 3 App设置SMTP。
此配置有效。
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "mydomain.com",
:user_name => "<username>",
:password => "<password>",
:authentication => "plain",
:enable_starttls_auto => true
}
但是这种配置没有。 它给出“主机名与服务器证书不匹配”
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "some_other_server.com",
:port => 587,
:domain => "mydomain.com",
:user_name => "<username>",
:password => "<password>",
:authentication => "plain",
:enable_starttls_auto => true
}
奇怪的是,相同的配置在Rails 2.3.8中有效。 (:tls =&gt; true)
怎么了?
答案 0 :(得分:53)
在ActionMailer smtp设置中尝试此操作:
:openssl_verify_mode => 'none'
它为您提供安全连接,但不验证任何内容。可能不是生产应用程序的最佳选择,但它适用于我。
答案 1 :(得分:15)
我遇到了完全相同的问题。通过更改ActionMailer :: Base.smtp_settings来解决它:
:enable_starttls_auto => true
到
:enable_starttls_auto => false
并且必须确保:user_name值包含@ domain.com
答案 2 :(得分:0)
您是否在邮件中提供了默认地址(位于app / mailers中)?我最后一次回忆起这个问题,我邮件中的主机名与我的smtp设置中的主机名不匹配。