我想从谷歌云平台实例使用 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 应用程序相同。
所以我想这是我的主要问题:
- 我在哪里调用保存 sendgrid api key 的环境变量?
- 我在哪里告诉 Action Mailer 使用 sendgrid 或
SendGrid::Mail
,正如我在几个地方看到的那样? - 我什至需要 sendgrid gem 吗?
- 使用 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
}
关于ruby-on-rails - 如何使用 Sendgrid API 发送电子邮件以使用 rails 4 发送电子邮件?我似乎无法把所有的部分放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38184833/