设置 SMTP 设置以在 rails 中发送邮件

Posted

技术标签:

【中文标题】设置 SMTP 设置以在 rails 中发送邮件【英文标题】:Setup SMTP settings for sending mail in rails 【发布时间】:2013-12-17 12:04:38 【问题描述】:

我已经按照following tutorial 创建了一个联系表单。

一切都很好,但正如教程所说 For real e-mail delivery, you should set up SMTP in the environment settings. 我如何设置 SMTP?

按照this 链接中的建议,我创建并编辑了 smtp_settings.rb;但一点运气都没有。它仍然不会将电子邮件发送给真实用户。

smtp_settings.rb

if Rails.env.production?
  Gitlab::Application.config.action_mailer.delivery_method = :smtp

  ActionMailer::Base.smtp_settings = 
    address: "smtp.gmail.com",
    port: 587,
    user_name: "myaccount@gmail.com",
    password: "abcpassword",
    domain: "mail.google.com",
    authentication: :login,
    enable_starttls_auto: true
  
end

【问题讨论】:

【参考方案1】:

这可能是因为 Rails 没有找到您的 smtp_settings.rb 文件,或者 delivery_method 行没有被识别..

尝试将文件移动到/config/initializers/smtp_settings.rb(如果它不存在),并将内容稍微更改为

如果 Rails.env.production? ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = 地址:“smtp.gmail.com”, 端口:587, 用户名:“myaccount@gmail.com”, 密码:“abcpassword”, 域:“mail.google.com”, 身份验证::登录, enable_starttls_auto:真 结尾

也可能是设置仅适用于生产,如果您在本地开发中尝试此设置,则需要删除第一行 if Rails... 和最后一行 @ 987654325@这样..

ActionMailer::Base.delivery_method = :smtp ActionMailer::Base.smtp_settings = 地址:“smtp.gmail.com”, 端口:587, 用户名:“myaccount@gmail.com”, 密码:“abcpassword”, 域:“mail.google.com”, 身份验证::登录, enable_starttls_auto:真

对该文件进行任何更改后,您需要重新启动 Rails 服务器或 Rails 控制台会话才能使更改生效。

【讨论】:

以上是关于设置 SMTP 设置以在 rails 中发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

MSN邮箱的服务器信息,发送邮件(SMTP)与接收邮件(POP3)如何设置?

设置Linux使用SMTP服务发送邮件

Rails 4,如何正确配置 smtp 设置(gmail)

邮件不能发,只能收

如何使用腾讯企业邮箱发送会员注册验证邮件

linux下设置SMTP服务器并用mail命令发送邮件精解