Ruby on Rails:如何配置设计邮件程序?

Posted

技术标签:

【中文标题】Ruby on Rails:如何配置设计邮件程序?【英文标题】:Ruby on Rails: How to Configure the Devise Mailer? 【发布时间】:2017-07-07 07:22:46 【问题描述】:

我在 Ruby on Rails 上做了一个应用程序。我正在使用设计,我需要使用可恢复密码功能。 我在 development.rb 上找到了这些配置:

config.action_mailer.default_url_options =  :host => 'localhost:3000' 

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = false
  config.action_mailer.default :charset => "utf-8"

  config.action_mailer.smtp_settings = 
    address: "smtp.gmail.com",
    port: 2525,
    domain: "gmail.com",
    authentication: "plain",
    enable_starttls_auto: true,
    user_name: "MY_EMAIL",
    password: "MY_PASS"
  

当我测试它时,它看起来不错,它不会在应用程序上引发任何异常,但电子邮件永远不会到来。请问,我该如何配置?

【问题讨论】:

您有 gmail 的 Google Apps 帐户吗?如果没有,发送这样的电子邮件最终会进入垃圾邮件文件夹。 您必须启用 google 帐户才能发送邮件 我遇到了同样的问题,即在使用 Google Mail 开发时无法接收来自 Devise 的电子邮件。我改用 SendGrid 并且确实收到了电子邮件。如果您真的不需要获取实际的电子邮件。您只需查看 Rails Server 日志即可查看电子邮件。 【参考方案1】:

对于在本地使用,我建议使用 letter_opener 之类的东西。

对于部署应用程序,我建议使用 Sendgrid 之类的服务,它有一个免费层,对于小型应用程序来说已经足够了。

如果您坚持使用 GMail 处理电子邮件,请尝试使用 TLS:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = 
  address: "smtp.gmail.com",
  domain: "gmail.com",
  port: 587,
  user_name: "jorge@example.org",
  password: "your_password",
  authentication: 'plain',
  enable_starttls_auto: true

【讨论】:

是的,我确实在这些地方使用了我的电子邮件和我的通行证,但它根本不起作用。 我已经用一种使用 GMail 的方式更新了答案,希望对您有所帮助。【参考方案2】:

偶然发现了这个较旧的问题,并认为我会在此处提供当前答案。如果您出于任何原因(原型设计、开发等 - 没有判断)尝试在您的 Devise Rails 应用程序中使用 Gmail 帐户,Pedro 的答案是正确的,但有 1 个例外。 SMTP 服务器的密码不是您的用户密码。这在过去可能没问题,但现在您必须生成一个与用户密码分开的新应用密码。

可在此处的 Google 支持网站上找到路线:https://support.google.com/accounts/answer/185833?hl=en

【讨论】:

以上是关于Ruby on Rails:如何配置设计邮件程序?的主要内容,如果未能解决你的问题,请参考以下文章

在 ruby​​ on rails 3 中通过电子邮件创建订阅

mailchimp 邮件程序不能在 ruby​​ on rails 中工作

Ruby on rails邮件程序+ Mailgun标记为垃圾邮件

Ruby on Rails:延迟的作业无法使用邮件程序并给出路由错误

Ruby on rails 协会 - 用户(设计)在注册和登录后可以“创建团队”或“加入团队”

使用Ruby On Rails生成URL(url_for)