Это то, что я установил в файле 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
Этот код работает в разработке и staging envoirnment .
Этот код работал нормально на продакшене , внезапно через несколько дней он перестал работать, и я получаю сообщение об ошибке.
Я пробовал настроить 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.