Я использую сертификат CloudFlare Flexible SSL.
Когда я пытаюсь отправить подтверждение регистрации пользователя, я получаю ошибку 500. В журнале:
OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol):
Мой production.rb:
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
tls: true,
address: 'smtp.yandex.ru',
port: 587,
domain: 'yandex.ru',
authentication: 'plain',
user_name: '[email protected]',
password: 'password',
}
Как исправить эту ошибку?
Я настроил SSL-сертификат в панели CloudFlare. Не используйте сервер для настроенного. В правилах apache я использую перенаправление на https, и он работает.
Я имел в виду настроить SSL для puma или любого другого сервера rails, который вы используете.
У меня нет файлов сертификатов, потому что CloudFlare их не выдает
Этот вопрос не имеет ничего общего ни с сертификатом SSL на вашем сервере, ни с облачным хранилищем. Ваши настройки выглядят правильными для типичных серверов SMTP + STARTTLS, поэтому я бы сказал, что вам понадобится ведение журнала отладки нижнего уровня или другие инструменты анализа, такие как testssl.sh.





Эта ошибка обычно возникает, если вы пытаетесь установить зашифрованное соединение с сервером, который этого не ожидает. Порт 587 обычно требует использования STARTTLS после первого установления незашифрованного соединения. Попробуйте удалить tls: true из своей конфигурации и вместо этого использовать enable_starttls_auto: true.
Не могли бы вы добавить более длинный отрывок из своего журнала? Есть ли случайный след?
Теперь ошибка: Net::SMTPFatalError (553 5.7.1 Sender address rejected: not owned by auth user.
Это означает, что ваша почтовая программа пытается отправить с недопустимого исходного адреса. Попробуйте добавить default from: '[email protected]', используя свой почтовый адрес yandex.ru.
Проблема заключалась в том, что на devise.rb использовалась совершенно другая почта, с изменением все работало.
Надеюсь, вы настроили ключ SSL и сертификат. Затем используйте конфигурацию для запуска сервера. Если вы не знаете или еще не выполнили этот шаг, поищите в Google учебное пособие. :)