ruby-on-rails – 如何使用Sendgrids API发送电子邮件以使用rails 4发送电子邮件?我似乎把所有的东西放在一起

我想从谷歌云平台实例发送带有sendgrids API的电子邮件.他们有一个
short tutorial on how to do this,但它有电子邮件消息,来自发送者,发送者和其他信息都在app.rb中,这不是在rails应用程序中发送消息的正常方式.

我看了sendgrid ruby docs,他们也没有很好的信息.在一个地方的所有信息,他们不说明要放入哪些文件,甚至提及要使用的任何smtp设置.

这是我到目前为止所拥有的

development.rb

config.action_mailer.delivery_method = :smtp
# SMTP settings
config.action_mailer.smtp_settings = {
 :address              => "smtp.sendgrid.net",
 :port                 => 465,
 :domain               => "mydomain.com",
 :user_name            => ENV['sendgrid_username'],
 :password             => ENV['sendgrid_password'],
 :authentication       => :plain,
 :ssl                  => true,
 :enable_starttls_auto => true
}

的Gemfile

gem "sendgrid-ruby"

电子邮件视图在app / views中,邮件程序方法在app / mailer中与普通rails 4应用程序设置相同.

所以我想这是我的主要问题:

>我在哪里调用包含sendgrid api密钥的环境变量?
>我在哪里告诉Action Mailer使用sendgrid或SendGrid :: Mail,就像我在几个地方看到的那样?
>我甚至需要sendgrid宝石吗?
>使用sendgrid通过SSL发送smtp设置是否正确?

我是新手在rails应用程序中发送这样的电子邮件,非常感谢帮助.

最佳答案 将apikey作为名称,将实际的apikey作为密码:

config.action_mailer.smtp_settings = {
  address:        "smtp.sendgrid.net",
  port:           587,
  domain:         "yourwebsite.com",
  authentication: :plain,
  user_name:      'apikey',
  password:       Rails.application.secrets.sendgrid_api_key
}

Source

点赞