Rails ActionMailer가있는 RESTFul Authentication 플러그인이 메일을 제공하지 않습니다.
-
21-08-2019 - |
문제
RESTFul 인증 플러그인을 사용하는 Rails 앱에서 작업하고 있습니다. 이메일 확인을 통해 새로운 사용자가 계정을 활성화해야합니다. 이것은 몇 시간 전에 신청서가 갑자기 이메일 배송에 실패하기 시작한 것까지 작동했습니다. 대신 다음 오류 메시지가 표시됩니다.
undefined method `perform_delivery_SMTP' for #<UserMailer:0x28ec7ac>
나는 이전 개정판으로 되돌아 가서 ActionMailer를 사용하여 새로운 앱을 만들었고, 레일을 다시 설치하고, 모든 플러그인과 보석을 다시 설치했지만 오류는 지속됩니다. 이 오류를 본 사람이 있습니까? Perform_delivery_smtp 메소드를 Usermailer 모델에 추가해야하지만 어떻게 그리고 왜 그런가? 감사.
해결책
메일러는 어디에서 구성합니까?
나는 당신의 배달 방법이 다음과 같이 설정되어 있다고 생각합니다.
ActionMailer::Base.delivery_method 'SMTP'
사용 :smtp
'smtp'대신
ActionMailer는 사용한다고 가정합니다 :smtp
, :sendmail
또는 :test
그것은 그것을 사용합니다 deliver!
그렇게 같은 방법
__send__("perform_delivery_#{delivery_method}", mail) if perform_deliveries
그것은 언제입니다 delivery_method
'smtp'로 설정되어 전화를 걸려고합니다. perform_delivery_SMTP
, 당신이 알았을 때 존재하지 않습니다. 기호를 사용할 때 :smtp
전화 perform_delivery_smtp
, 존재합니다.
다른 팁
로컬 서버 (개발 모드)에서 잘 작동하고 생산 모드에서 작동하지 않는 ActionMailer로 어려움을 겪고있는 사람들은 다음 링크를 고려해야합니다.
http://filiptepper.com/2009/02/11/hint-fixing-smtp_tlsrb-for-ruby-187/
그것은 내 문제를 해결하고 다른 사람들에게도 도움이 될 수 있습니다. 기본적으로 문제는“net :: smtp의 check_auth_args는 루비 1.8.7 (개발에 사용하는)과 루비 1.8.6 (준비)에서 다른 인수를 취한다”는 것입니다. 그리고 최악의 것은 Production.log 파일에 오류가 남지 않는다는 것입니다. 실제로 문제인지 확인하기 위해 ActionMailer를 실행하여 스크립트/콘솔에서 이메일을 보내서 잘못된 수의 인수 오류가 발생했습니다…