2012-07-29 46 views
7

Tôi đã cố gắng định cấu hình actionmailer để gửi qua ứng dụng google bằng smtp.Tác vụ gửi thư SMTP google apps

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 

Tuy nhiên bất cứ khi nào gitlab cố gắng gửi một e-mail:

Sent mail to [email protected] (10ms) 
Completed 500 Internal Server Error in 29ms 

535-5.7.1 Username and Password not accepted 

Server chạy ruby ​​1.9.3p194. Tại sao các ứng dụng của google không chấp nhận tên người dùng/mật khẩu?

+1

Hãy thử đăng nhập vào tài khoản gmail của bạn, bạn có thể cần phải cấp quyền cho ứng dụng của mình –

+0

@KyleC Tôi đã thử điều đó. Ứng dụng của tôi là người gửi thư hành động. Tôi có cần cấp quyền cho SMTP không? – Jubei

+2

Không .... Các lỗi này có xảy ra trong quá trình phát triển (máy tính cục bộ) hoặc sản xuất không? –

Trả lời

10

Nó hoạt động ngay bây giờ, tôi nghĩ rằng vấn đề là với tên người dùng. nó cần tên miền trong tên người dùng. tức là vấn đề là

user_name: 'username' 

Trong khi cách chính xác (ít nhất là cho các ứng dụng google) là

user_name : '[email protected]' 
5

này làm việc cho tôi:

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

Thử đặt tên miền để gmail.com

+0

Cảm ơn bạn, điều đó cũng phù hợp với tôi đối với gmail.com chứ không phải cho miền ứng dụng google. – Jubei

Các vấn đề liên quan