Это то, что я установил в файле setup_email.rb,
if Rails.env.production?
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "gmail.com",
:user_name => "username",
:password => "mypass",
:authentication => "login",
:enable_starttls_auto => true
}
end
Этот код работает в среде разработки и подготовки..
Этот код отлично работал на производстве, внезапно через несколько дней он перестал работать, и я получаю сообщение об ошибке. Я пробовал настроить openssl_verify_mode: none
все еще не работает.
Затем я изменил учетную запись Gmail, но получил ту же ошибку. Похоже на ошибку на стороне сервера
Ошибка:
OpenSSL :: SSL :: SSLError: имя хоста "smtp.gmail.com" не соответствует сертификату сервера
Я пробовал разные методы в Интернете, но они не работают. Любая помощь будет оценена.
В одной производственной системе используют:
openssl s_client -connect smtp.gmail.com:587 -starttls smtp -showcerts
В моей системе вывод включает:
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
Ваше программное обеспечение smtp, вероятно, проверяет CN = smtp.gmail.com и видит там что-то еще. Например, кто-то мог встать посередине между вами и gmail.com. Не обязательно враждебно, может быть простым /etc/hosts
модификация или изменение прокси-сервера socks.