[RUBY-ON-RAILS] 개발은 4 레일에 ActionMailer 메일을 발송하지
RUBY-ON-RAILS개발은 4 레일에 ActionMailer 메일을 발송하지
왜이 메일러는 메일을 전송하지? (디버깅 또는 어떤 아이디어?)
을 my_app에서 / 설정 / 환경 / development.rb이 코드를 가지고 :
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: 'smtp.gmail.com',
port: 587,
domain: 'my_app.com',
user_name: ENV['GMAIL_USERNAME'],
password: ENV['GMAIL_PASSWORD'],
authentication: 'plain',
enable_starttls_auto: true }
그럼 ~ 내 로컬 컴퓨터 / .bash_profile에이 코드를 가지고 :
export GMAIL_USERNAME='blah@my_app.com'
export GMAIL_PASSWORD='***'
내 터미널에서 $ ENV를 실행하면, 둘 다 환경 변수가 올바르게 설정되어 있는지를 참조하십시오.
나는 또한 내 레일 서버를 다시 시작했다.
해결법
-
==============================
1.당신은 추가해야
당신은 추가해야
config.action_mailer.perform_deliveries = true
이 거짓에 기본적으로, 메일을 방지하는 개발 환경에서 확인할 수 있습니다 ...
-
==============================
2.사람이 센드 메일의 전달 방법을 전환, SMTP를 사용하지 않는 명시 적으로 수행 할 배달을 설정하는 것 외에 저를 도와 :
사람이 센드 메일의 전달 방법을 전환, SMTP를 사용하지 않는 명시 적으로 수행 할 배달을 설정하는 것 외에 저를 도와 :
config.action_mailer.delivery_method = :sendmail
-
==============================
3.당신이 콘솔에서 이메일을 보내는 문제가있는 경우이 메일에 방법을 제공 호출해야합니다.
당신이 콘솔에서 이메일을 보내는 문제가있는 경우이 메일에 방법을 제공 호출해야합니다.
MyMailer.create_email.deliver
-
==============================
4.이러한 답변은 모두 훌륭하지만, 특히 디버깅의 맥락에서, 화상을 입을 수있는 또 다른 장소가있다.
이러한 답변은 모두 훌륭하지만, 특히 디버깅의 맥락에서, 화상을 입을 수있는 또 다른 장소가있다.
development.rb 메이크업에서 확인 당신은 = 사실 config.action_mailer.raise_delivery_errors 설정
당신의 .deliver 방법은 문제없이 작동하는 것처럼 보이지만 실제로 회선을 통해 이메일을 받았다면, 당신의 납품 방법은 예외를 throw 할 수 있으며, 레일 오류를 삼키는된다. 당신은 단순히 잘못 자격 증명으로 간단하게 뭔가가 있다면 이것은 매우 사실, 또는 AWS는 API 오류 액세스가 거부되었습니다. 밖으로 머리를 추출하고 만들어 저장해야 당신은 raise_delivery_errors이 켜져 있습니다. 그것은 당신 만이 할 수없는 일을 말하고자합니다.
-
==============================
5.내가 그것을 알아 냈어요 그래서. 라인 ActionMailer :: Base.delivery_method 갖는 = SMTP의 설정 / environment.rb에 우선 ActionMailer :: Base.delivery_method = 설정 / 환경 / test.rb에서 테스트.
내가 그것을 알아 냈어요 그래서. 라인 ActionMailer :: Base.delivery_method 갖는 = SMTP의 설정 / environment.rb에 우선 ActionMailer :: Base.delivery_method = 설정 / 환경 / test.rb에서 테스트.
그래서, 라인, ActionMailer :: Base.delivery_method = 삭제 : 설정 / environment.rb에에서 SMTP 및 설정 / 환경 / production.rb에 넣습니다. 설정 / 환경 / test.rb에서 테스트 및 당신이 설정 / 환경 / development.rb 원하는 버전 : 그것은 당신이 ActionMailer :: Base.delivery_method을 = 배치 할 수 있습니다. 내가 위조자를 사용하여 내 데이터베이스를 채워 시험로와에 변경 : 나는 development.rb 만든 내가 진짜 이메일은 추가 검사로 전송하고 있는지 확인했다 있도록 SMTP.
참고 : 이러한 변경 사항을 적용하려면 당신은 당신의 서버를 다시 시작해야합니다.
또 다른 참고 : Heroku가 현재 SendGrid 지침 (https://devcenter.heroku.com/articles/sendgrid) 가능성의 마지막 줄을 제거하고 배치 요구하는 새로운 설정 / 초기화 / mail.rb 파일에 SendGrid Heroku가 구성 코드를 삽입 각 구성에서, 원하는 버전 / 환경 / [production.rb, development.rb, test.rb]
from https://stackoverflow.com/questions/20769589/actionmailer-not-sending-mail-in-development-rails-4 by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] mysql2 보석을 설치할 수 없습니다 (0) | 2020.03.02 |
---|---|
[RUBY-ON-RAILS] 방법은 OpenSSL : SSL 없애 :: SSLError (0) | 2020.03.02 |
[RUBY-ON-RAILS] 어떻게 레일 응용 프로그램에서 경쟁 조건을 피할 수 있습니까? (0) | 2020.03.02 |
[RUBY-ON-RAILS] 유효성 수용은 항상 실패 (0) | 2020.03.02 |
[RUBY-ON-RAILS] 액티브가 포함되어 있습니다. 포함 된 열을 지정합니다 (0) | 2020.03.02 |