我已按照following tutorial创建联系表单。
一切都很好,但正如教程所说For real e-mail delivery, you should set up SMTP in the environment settings.
我该如何设置SMTP?
在this链接中建议我创建并编辑了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
答案 0 :(得分:1)
可能是因为Rails没有找到您的smtp_settings.rb
文件,或者delivery_method
行没有被识别..
如果文件已经存在,请尝试将文件移至/config/initializers/smtp_settings.rb
,然后将内容稍微更改为
if Rails.env.production? ActionMailer::Base.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} }和最后一行if Rails...
一样..
ActionMailer::Base.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 }
对此文件进行任何更改后,您需要重新启动rails服务器或rails控制台会话才能使更改生效。