微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用纯 Ruby 发送电子邮件

如何解决使用纯 Ruby 发送电子邮件

我在使用纯 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       'user@example.com'
  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 最近过渡到 api 密钥,将拒绝普通身份验证,请参阅 details here。 可能不接受您仍然有效的旧凭据。

在 sendgrid 中生成一个新的 api 密钥并用它代替密码。用户名将是 apikey

,

不要在此配置中使用您的 SendGrid 用户名和密码,而是使用以下内容,

user_name: 'apikey',password: '<sendgrid_api_key>',

在为 ActionMailer 定义 smtp 设置时这对我有用,所以它也应该在这里工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。