У меня проблемы с отправкой писем на чистом Ruby. Вот как выглядит мой скрипт:
Mail.defaults do
delivery_method(
:smtp,
address: 'smtp.sendgrid.net',
port: 587,
user_name: 'sendgrid_username',
password: 'sendgrid_password',
authentication: :login,
enable_starttls_auto: false,
openssl_verify_mode: "none"
)
end
Mail.deliver do
from 'Test Email'
to '[email protected]'
subject 'Here is the image you wanted'
body "Test Email"
end
Этот скрипт вызывает следующую ошибку:
/Users/mateuszurbanski/.rubies/ruby-2.7.2/lib/ruby/2.7.0/net/smtp.rb:975:in `check_auth_response': 535 Authentication failed: Bad username / password (Net::SMTPAuthenticationError)
Я использую учетные данные из одного из моих проектов Ruby on Rails, и они в порядке. Есть идеи?
Если вы получаете отказ в аутентификации, то эти учетные данные явно не подходят. Вы должны проверить их еще раз и посмотреть, какие журналы вы можете получить от SendGrid для диагностики.
Вместо использования вашего имени пользователя и пароля SendGrid в этой конфигурации используйте следующее:
user_name: 'apikey',
password: '<sendgrid_api_key>',
Это работает для меня при определении настроек smtp для ActionMailer, так что это должно работать и здесь.
Sendgrid недавно перешел на ключи API и будет отвергать обычную аутентификацию, см. подробности здесь. Ваши старые учетные данные, хотя они все еще действительны, могут быть не приняты.
Создайте новый ключ API в sendgrid и используйте его вместо пароля. Имя пользователя будет apikey
Что здесь означает «чистый рубин»?