【问题标题】:Rails ActionMailer with SendGridRails ActionMailer 与 SendGrid
【发布时间】:2010-10-18 00:42:08
【问题描述】:

我正在使用 SendGrid 在 Heroku 上发送电子邮件...

目前的问题是,虽然它在 Heroku 上运行良好,但在我的本地主机上却失败了。

现在我在这里安装了 SendGrig,config/setup_mail.rb:

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']
}

什么是 Heroku/SendGrid 方法可以让我确保我的邮件程序在 DEV 中工作。这个 setup_mail.rb 文件是个好东西吗?它应该在env文件中吗?还有其他想法吗?

谢谢

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 sendgrid


    【解决方案1】:

    使用 config/environments/[development.rb | production.rb] 上面提到的 tfe 听起来像是要走的路。只需将 ActionMailer 配置放入其中一个文件中并更改它以适应开发|生产环境。

    您还可以通过发出以下命令找到 Heroku 使用的 SendGrid 凭据:

    heroku 配置 --long

    这些凭据用于所有 SendGrid 身份验证(SMTP 身份验证、网站登录以查看统计信息等、API 访问)

    -- 乔

    发送网格

    【讨论】:

    • 看来heroku config --long 已经不行了。 heroku config:get SENDGRID_USERNAMEheroku config:get SENDGRID_PASSWORD 为您提供相同的信息。
    • 或者只是heroku config 没有参数
    【解决方案2】:

    只需在您的开发环境中为SENDGRID_USERNAMESENDGRID_PASSWORDSENDGRID_DOMAIN 设置环境变量。然后就可以了。

    您可以从 Heroku 应用中获取这些值的正确值。打开heroku控制台,获取ENV['SENDGRID_USERNAME']等的值。

    或者只是在本地使用一组不同的 SMTP 设置。或者使用 sendmail 什么的。

    【讨论】:

    • 谢谢,“在本地使用一组不同的 SMTP 设置”,这正是我想要学习的方法。在 Rails 中跨环境进行此设置的正确方法是什么?
    • 我相信您可以在每个环境初始化文件 (config/environments/foo.rb) 中设置 ActionMailer::Base.smtp_settings。我不确定这里的 Rails 方式。好久没用这种方式配置邮件了。
    • 我在 Heroku 上使用 SendGrid 运行了几个应用程序,但我遇到了同样的问题(希望在本地和 Heroku 上发送邮件)。我所做的只是自己去 SendGrid 并注册一个帐户。然后我有了可以在应用程序中为所有环境设置的用户名和密码,并且这些凭据没有锁定在 Heroku 应用程序的 ENV 中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多