bas*_*eck 7 ruby-on-rails actionmailer heroku sendgrid ruby-on-rails-3
我正在尝试在rails 3.0.10项目上实现"联系我们"表单.在RailsGuides之后,我创建了一个邮件程序.
class QuestionMailer < ActionMailer::Base
default :to => "%mail@mydomain" #gmail for domains
def ask(message)
@content = message.content
unless message.name.nil? or message.name.empty?
from = "#{message.name} <#{message.email}>"
else
from = message.email
end
mail(:subject => message.subject, :from => from)
end
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器中,我有这些线:
if @question.valid?
QuestionMailer.ask(@question).deliver
redirect_to root_url, :notice => "????????? ??????????"
else
Run Code Online (Sandbox Code Playgroud)
Production.rb:
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => '%mydomain%' }
ActionMailer::Base.smtp_settings = {
:address => "smtp.sendgrid.net",
:port => "25",
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => ENV['SENDGRID_DOMAIN']
}
Run Code Online (Sandbox Code Playgroud)
我一开始没有这个配置,但是当我没有收到电子邮件时,我添加了它.
问题是,Heroku日志说,相应的视图已经呈现,但我没有收到电子邮件.因为我使用sendgrid,我无法在本地测试它.
UPD
注意自我.为域帐户创建Gmail后,请不要忘记您的DNS设置.> _ <
Joh*_*non 11
您仍然可以使用sendgrid在本地进行测试 - 从命令行执行heroku config
,您可以获取Heroku为sendgrid用户名,密码和域设置的值,然后在您的development.rb中设置它们以及actionmailer设置,它将路由您的消息从本地开发应用程序通过sendgrid.
我还发现这个heroku插件https://github.com/hone/heroku-sendgrid-stats对于检查我的消息发送号码非常有用.
归档时间: |
|
查看次数: |
2706 次 |
最近记录: |