Rails 애플리케이션에서 이메일을 보내고 있습니다. 개발 환경에서는 잘 작동하지만 스테이징에서는 실패합니다. 다음과 같은 오류가 발생합니다.
Net::SMTPAuthenticationError (534-5.7.14 <https://accounts.google.com/ContinueSignIn?plt=AKgnsbtdF0yjrQccTO2D_6)
스테이징을위한 도메인 이름이 없습니다.
staging.rb의 설정은 다음과 같습니다.
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here:80" }
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'my.ip.addr.here:80'
:user_name => "my_email_name@gmail.com",
:password => "my_email_password",
:authentication => 'login'
}
도와주세요.
편집하다.
:tls => true
옵션을 추가 하면
OpenSSL::SSL::SSLError (Unrecognized SSL message, plaintext connection?)
그런 다음 포트를 25로 변경했는데 이제 다음과 같이 표시됩니다 (30 초 지연).
Timeout::Error (execution expired)
답변
나는 똑같은 문제가 있었다 : 이메일은 개발에서 보내졌지만 프로덕션에서는 보내지지 않았다 Net::SMTPAuthenticationError
. 이로 인해 문제가 내 앱의 구성이 아니라 Google에 있다는 결론에 도달했습니다.
이유 : Google이 알 수없는 위치에서의 액세스를 차단했습니다 (프로덕션중인 앱).
해결 방법 : http://www.google.com/accounts/DisplayUnlockCaptcha로 이동하여 계속을 클릭합니다 (새 앱 등록을 위해 10 분 동안 액세스 권한이 부여됨). 이 후 프로덕션에서 내 앱이 이메일을 보내기 시작했습니다.)
답변
이 솔루션은 저에게 효과적입니다.
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { host:'localhost', port: '3000' }
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.default :charset => "utf-8"
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'localhost:3000',
:user_name => "xyz@gmail.com",
:password => "password",
:authentication => :plain,
:enable_starttls_auto => true
}
Google이 귀하의 로그인 시도를 차단하는 것은 사실이지만 https://www.google.com/settings/security/lesssecureapps 에서 설정을 변경하여 귀하의 계정이 더 이상 최신 보안 표준에 의해 보호되지 않도록 할 수 있습니다.
답변
해결되었습니다! 나는 단순히 암호를 변경 한 내 Gmail 계정과 어떻게 든 오류가 사라졌다.
수십 가지 변경 후 최종 설정은 다음과 같습니다.
config.action_mailer.delivery_method = :smtp
config.action_mailer.default_url_options = { :host => "my.ip.addr.here" }
config.action_mailer.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => 'my.ip.addr.here:80',
:user_name => "my_email_name@gmail.com",
:password => "my_email_password",
:authentication => :plain,
:enable_starttls_auto => true
}
답변
다음 링크로 이동하여 https://www.google.com/settings/security/lesssecureapps를 켜십시오.
답변
답변
나중에 다른 사람에게 도움이되는 경우를 대비해 Google Apps 도움말 센터에 전화를 걸어 lesssecureapps 설정 (다른 모든 사람과 마찬가지로)을 변경하고 포트를 465로 변경하도록 지시했습니다.
제 경우에는 그게 트릭이었습니다!
답변
나는 같은 문제가 있었다.
해결책:
-
옵션을 켤 수 있습니다
less secure apps
( 여기 ).
https://myaccount.google.com/lesssecureapps -
그리고 Captcha 잠금 해제 ( 링크 ) :
https://accounts.google.com/DisplayUnlockCaptcha