Sendgrid 是否需要邮件 gem 以及如何使用 action mailer 进行设置?
Does Sendgrid require mail gem and how to set it up with action mailer?
Heroku 文档说:
https://devcenter.heroku.com/articles/sendgrid#ruby-rails
To send out emails through SendGrid, you need to configure the Mail class to have the correct values:
require 'mail'
Mail.defaults do
delivery_method :smtp, {
:address => 'smtp.sendgrid.net',
:port => '587',
:domain => 'heroku.com',
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}
end
Mail gem 文档或 heroku 都没有明确指定 Mail class 应该在哪里以及如何配置它。
以前我用过类似这样的 Action Mailer
class UserMailer < ActionMailer::Base
default from: 'careerswitch.me@gmail.com'
# Subject can be set in your I18n file at config/locales/en.yml
# with the following lookup:
#
# en.user_mailer.signup_confirmation.subject
def signup_confirmation(user,subject_param='Welcome!')
@user = user
mail to: user.email,
subject: subject_param do |format|
#format.text {render __method__}
format.html {render __method__}
end
end
end
关于更改内容以及如何在 Herouku/Rails4.1 上设置 sendgrid 的任何好示例?
这些是初始化程序设置。 应该 是一个生成器,但我认为没有。至少上次我手动做了。
转到yourappdirectory/config/initializers
创建一个名为 mail.rb
的文件
粘贴上面的代码
就是这样。一旦你配置好了,你就可以开始了。
Heroku 为 sendgrid 提供附加组件。
https://elements.heroku.com/addons/sendgrid
通过添加这个,它会自动为你设置环境变量,即
SENDGRID_USERNAME
SENDGRID_PASSWORD
配置附加组件后,您必须将其放入 production.rb
ActionMailer::Base.smtp_settings = {
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'appname.herokuapp.com',
:address => "smtp.sendgrid.net",
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
Mailer class 将保持正常使用。
Heroku 文档说: https://devcenter.heroku.com/articles/sendgrid#ruby-rails
To send out emails through SendGrid, you need to configure the Mail class to have the correct values:
require 'mail'
Mail.defaults do
delivery_method :smtp, {
:address => 'smtp.sendgrid.net',
:port => '587',
:domain => 'heroku.com',
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:authentication => :plain,
:enable_starttls_auto => true
}
end
Mail gem 文档或 heroku 都没有明确指定 Mail class 应该在哪里以及如何配置它。
以前我用过类似这样的 Action Mailer
class UserMailer < ActionMailer::Base
default from: 'careerswitch.me@gmail.com'
# Subject can be set in your I18n file at config/locales/en.yml
# with the following lookup:
#
# en.user_mailer.signup_confirmation.subject
def signup_confirmation(user,subject_param='Welcome!')
@user = user
mail to: user.email,
subject: subject_param do |format|
#format.text {render __method__}
format.html {render __method__}
end
end
end
关于更改内容以及如何在 Herouku/Rails4.1 上设置 sendgrid 的任何好示例?
这些是初始化程序设置。 应该 是一个生成器,但我认为没有。至少上次我手动做了。
转到
yourappdirectory/config/initializers
创建一个名为
mail.rb
的文件
粘贴上面的代码
就是这样。一旦你配置好了,你就可以开始了。
Heroku 为 sendgrid 提供附加组件。 https://elements.heroku.com/addons/sendgrid
通过添加这个,它会自动为你设置环境变量,即 SENDGRID_USERNAME SENDGRID_PASSWORD
配置附加组件后,您必须将其放入 production.rb
ActionMailer::Base.smtp_settings = {
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'appname.herokuapp.com',
:address => "smtp.sendgrid.net",
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
Mailer class 将保持正常使用。