我在尝试发送邮件时遇到gmail
gem的错误,这在本地工作正常,并且在heroku上工作正常,但现在我将此应用程序移动到VPS服务器。这是错误:
e = g.compose do
to 'test@gmail.com'
subject 'testasea'
body 'test'
end
=> #<Mail::Message:25450040, Multipart: false, Headers: <From: .......>
e.deliver!
=> OpenSSL::SSL::SSLError: hostname does not match the server certificate
我已将此添加到初始化程序文件中,没有任何运气:
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
:openssl_verify_mode => 'none' # I've tested with 0 and false,
}
我试图通过猴子路径
OpenSSL::SSL::SSLSocket.class_eval do
def post_connection_check(hostname)
return true
end
end
没有运气,当我这样做时,我收到535 Incorrect authentication data
,但是我知道数据没问题,因为我能做到
g.inbox.count :read
它会返回正确的数字。
我想知道:
答案 0 :(得分:0)
这只是猜测,但如果您在WHM VPS
中有一个限制外发SMTP连接的功能,您可以在Tweak设置中找到它。
Restrict outgoing SMTP to root, exim, and mailman (FKA SMTP Tweak)
重定向所有SMTP连接,如果启用此选项,您将收到服务器自签名ssl证书,如果使用monkey patch或设置配置绕过它,请不要检查ssl证书,您可能会发现身份验证错误实际上是连接到LOCAL SMTP服务器。
只需禁用它并再次测试。