ruby-on-rails - 如何使用 Sendgrid API 发送电子邮件以使用 rails 4 发送电子邮件?我似乎无法把所有的部分放在一起

标签 ruby-on-rails ruby google-app-engine ruby-on-rails-4 sendgrid

我想从谷歌云平台实例使用 sendgrids API 发送电子邮件。他们有一个 short tutorial on how to do this但它在 app.rb 中包含电子邮件消息、发件人、收件人以及其他信息,这不是 Rails 应用程序中发送消息的正常方式。

我查看了 sendgrid ruby docs他们也没有很好的信息。所有信息都集中在一个地方,他们没有说明将它们放在什么文件中,甚至没有提及要使用的任何 smtp 设置。

这是我目前的情况

开发.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
}

gem 文件

gem "sendgrid-ruby"

电子邮件 View 在 app/views 中,邮件程序方法在 app/mailer 中,与正常的 rails 4 应用程序相同。

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

  1. 我在哪里调用保存 sendgrid api key 的环境变量?
  2. 我在哪里告诉 Action Mailer 使用 sendgrid 或 SendGrid::Mail,正如我在几个地方看到的那样?
  3. 我什至需要 sendgrid gem 吗?
  4. 使用 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

关于ruby-on-rails - 如何使用 Sendgrid API 发送电子邮件以使用 rails 4 发送电子邮件?我似乎无法把所有的部分放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38184833/

相关文章:

sql - 不同的加入 Rails

ruby-on-rails - 使用 ruby​​ on Rails 数据迁移撤消 html 转义

java - 尝试运行我的项目时抛出 BeanCreationException

ruby-on-rails - 如何测试数据库记录是否按id排序?

javascript - rails : couldn't find file 'typeahead.js' . 。直到我删除 'data-turbolinks'

ruby-on-rails - 在 ruby​​ 进程之间处理大数据对象

python - 数据库上的谷歌应用程序引擎字符串列表属性

ruby-on-rails - 如何使用 Active Model Serializers (0.8) 缓存数组?

ruby-on-rails - 卡皮斯特拉诺卡文件 : what does >load 'deploy' do?

google-app-engine - 如何将 Oauth2 服务帐户与 Google Drive 和 App Engine SDK 一起使用