动作邮件SMTP谷歌应用程序

Jub*_*bei 7 ruby ruby-on-rails actionmailer gitlab

我尝试配置actionmailer以通过谷歌应用程序与smtp发送.

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => "mydomain.com",
:user_name            => "username",
:password             => "password",
:authentication       => 'plain',
:enable_starttls_auto => true  }

config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
Run Code Online (Sandbox Code Playgroud)

但是每当gitlab尝试发送电子邮件时:

Sent mail to user@my.domain.com (10ms)
Completed 500 Internal Server Error in 29ms

535-5.7.1 Username and Password not accepted
Run Code Online (Sandbox Code Playgroud)

服务器运行ruby 1.9.3p194.为什么谷歌应用程序不接受用户名/密码?

Jub*_*bei 10

它现在有效,我认为问题在于用户名.它需要用户名中的域名.即问题是

user_name: 'username'
Run Code Online (Sandbox Code Playgroud)

而正确的方式(至少谷歌应用程序)是

user_name : 'username@mydomain.com'
Run Code Online (Sandbox Code Playgroud)


小智 5

这对我有用:

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:address              => "smtp.gmail.com",
:port                 => 587,
:domain               => "gmail.com",
:user_name            => "you@gmail.com",
:password             => "password",
:authentication       => 'plain',
:enable_starttls_auto => true  }
Run Code Online (Sandbox Code Playgroud)

尝试将域名设置为gmail.com