Res*_*ieC 49 email smtp ruby-on-rails ruby-on-rails-4
我正在尝试在Rails 4中创建一个联系表单.我在这里做了一些挖掘,并且能够使大部分内容工作.(关注@ sethfri的工作在这里联系Form Mailer in Rails 4)
现在我可以填写表格框并点击发送.在我的rails服务器中,它说邮件出站到我的电子邮件地址,但我的gmail框中没有收到任何内容,所以我认为我的smtp设置不正确.我的smtp设置是:
...配置/环境/ development.rb
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.net",
:user_name => "mygmailusername@gmail.com",
:password => "myGmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)
我还添加了 .../config/initializers/smtp_settings.rb
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => "587",
:domain => "mydomain.net",
:user_name => "gmailuser@gmail.com",
:password => "gmailPassword",
:authentication => "plain",
:enable_starttls_auto => true
}
Run Code Online (Sandbox Code Playgroud)
我错过了什么/做错了什么?我玩了几件事(将default_url更改为端口1025,更改:port =>"587"更改为:port => 587)但没有成功.
谢谢您的帮助!
Tar*_*ani 55
您必须正确设置域.目前在代码中发布了其"mydomain.net".如果你想通过gmail发送它,请将其更改为gmail.com.
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'gmail.com',
user_name: 'xyz@gmail.com',
password: 'yourpassword',
authentication: :plain,
enable_starttls_auto: true
}
Run Code Online (Sandbox Code Playgroud)
几个小时后,我会找到一种方法让它起作用.对于我自己,我需要进行两步验证并使用Gmail应用程序密码
启用两步验证(也称为双因素身份验证)后,您可以为帐户添加额外的安全保护.您使用您知道的内容(密码)和您拥有的内容(将代码发送到手机)登录.
设置两步验证
应用密码是一个16位数的密码,可让应用或设备访问您的Google帐户.如果您使用两步验证并在尝试访问Google帐户时看到"密码不正确"错误,则可以使用应用程序密码解决问题.大多数情况下,每个应用程序或设备只需输入一次应用程序密码,因此不必担心记忆它
如何生成应用密码
2020年,Rails 6更新答案:
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
authentication: "plain",
enable_starttls_auto: true,
user_name: "blabla@gmail.com",
password: "blabla",
domain: "smtp.gmail.com",
openssl_verify_mode: "none",
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61674 次 |
| 最近记录: |