Как обойти ошибку сертификата на yandex при отсылке письма на Rails?

Второй подход к отсылке писем из Rails приложения. Первый окончился неудачей полгода назад.
smtp, yandex...

config/environments.rb:
config.action_mailer.raise_delivery_errors = true
Это позволило выводить сообщения об ошибках отправки писем в браузер

ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => true,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "неверный пароль"
}

535 5.7.8 Error: authentication failed: Invalid user or password!

Вразумительно отвечает, что пароль неверный

Даем правильный пароль:

ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => true,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "верный пароль"
}

554 5.7.1 Message rejected under suspicion of SPAM

Письмо видит, думает, что это спам

Возможно это из-за TLS. Пробуем играть параметрами:

config/initializers/mail.rb:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => false,
		:tls => false,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "верный пароль"
}


530 5.7.7 Email sending without SSL/TLS encryption is not allowed. Please see: help.yandex.ru/mail/mail-clients/ssl.xml

Без TLS не хочет связываться вообще

config/initializers/mail.rb:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => false,
		:tls => true,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "верный пароль"
}

либо:
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => true,
		:tls => true,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "верный пароль"
}


SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol


Далее пробовал читать и делать как написано здесь: https://gist.github.com/fnichol/867550.
Все тоже самое.
Думал, что возможно сам почтовый ящик каким либо образом нужно настроить. Нет:
Пробовал Мозиллу тундраберд - она срабатывает хорошо. Т.е. с почтой как таковой - все в порядке.
А ведь у людей получается, например у Рената Ибрагимова: vk.com/topic-31022447_30379827
Как быть? У кого получилось?

Пока писал этот пост я сам догадался))):
ActionMailer::Base.smtp_settings = {
		:enable_starttls_auto => true,
		# :openssl_verify_mode => 'none',
		# :tls => true,
		address:"smtp.yandex.ru",
		port: 587,
		domain: "127.0.0.1:3000",
		authentication: "plain",
		user_name: "myemail@yandex.ru",
		password: "верный пароль"
}

Письмо наконец то пришло
Нужно было прописать порт!
Решил все же выложить пост. Может кому пригодится)
  • Вопрос задан
  • 13217 просмотров
Решения вопроса 1
@sunnmas Автор вопроса
Ruby
ActionMailer::Base.smtp_settings = {
:enable_starttls_auto => true,
address:"smtp.yandex.ru",
port: 587,
domain: "127.0.0.1:3000",
authentication: "plain",
user_name: "myemail@yandex.ru",
password: "верный пароль"
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы