Cloud9에서 Rails 응용 프로그램을 개발 중입니다. Devise 확인 전자 메일을 작동시키는 것이 매우 간단합니다. 웬일인지, 그들은 보내지 않고있다.Devise 확인 이메일이 전송되지 않음
전자 메일 기능에 SendGrid를 사용하고 있습니다. 테스트 이메일을 보내는 사소한 ActionMailer를 만들 수 있기 때문에 SendGrid가 올바르게 작동하고 있다는 것을 알고 있습니다. 그러나 어떤 이유로 든 Devise 확인 전자 메일이 전송되지 않습니다. ActionMailer::Base.mail
방법으로 전화를 걸었지만 메일이 배달되지 않습니다.
디버깅하는 방법을 모르겠습니다.
다만 이미 작동하고 물건을 확인하는 제안 방지 : 사용자 옵션은 내가
config.action_mailer.perform_deliveries = true
을 설정하고 :confirmable
- 을 내가 가지고
config/initializers/setup_mail.rb
에 다음 행 코드 :
if Rails.env.development? || Rails.env.production?
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
address: 'smtp.sendgrid.net',
port: '2525',
authentication: :plain,
user_name: ENV['SENDGRID_USERNAME'],
password: ENV['SENDGRID_PASSWORD'],
domain: "sendgrid.com",
enable_starttls_auto: true
}
무슨 일이 벌어지고 있었는지 디버그 할 때 레일즈 콘솔에서'mail'을 호출 해 보았습니다. 내가 발견 한 것은'ActionMailer :: Base.mail'을 직접 호출하면 결코 메일이 전달되지 않지만,'ActionMailer'의 서브 클래스를 통해 간접적으로 호출하면 작동합니다. 왜 세계에서 기본 클래스가 작동하지 않을까요? –
왜 작동할까요? ActionMailer :: Base는 하위 클래스로 만들어졌습니다. – max
그러나 서브 클래스가 많은 기능을 추가하지 않는 것 : '클래스 ApplicationMailer