2013-03-13 3 views
0

비동기 전자 메일 보내기를 설정하려고합니다. delayed_job을 사용하고 있습니다. Withoud delayed_job 모든 것이 오류없이 작동합니다. 하지만 추가 할 때 :메일을 보낼 때 delayed_jobs에서 "보낸 사람/보낸 사람"을 묻습니다.

handle_asynchronously :mail_sending_method 

나는 다음과 같은 오류 얻을 : 나는 특히이 같은 메일을 보내는 ActionMailer를 사용

A sender (Return-Path, Sender or From) required to send a message 

을 : 여기

mail(:to => user.email, :from => "[email protected]", :subject => "Blah") 

은 방법 :

def phrase_email(user, tweet, keyword, phrase) 
    @user = user 
    @tweet = tweet 
    @keyword = keyword 
    @phrase = phrase 
    mail(:to => user.email, :from => "[email protected]", :subject => "Weekapp  Phrase Notification") 
end 
+0

당신은'mail_sending_method'을 게시 할 수 있습니까 ?? – codeit

+0

나는 그것을 더했습니다 – rastko

답변

2

지연된 작업 w orails는 Rails 3 Mailers과 다르게 작동합니다. 당신의 메일 발송 방법을 호출하는 동안

class YourMailer < ActionMailer::Base 
    def phrase_email(user, tweet, keyword, phrase) 
    @user = user 
    @tweet = tweet 
    @keyword = keyword 
    @phrase = phrase 
    mail(:to => user.email, :from => "[email protected]", :subject => "Weekapp Phrase Notification") 
    end 
end 

그래서, 아래와 같이 delay 또는 deliver를 사용합니다.

YourMailer.delay.phrase_email(user, tweet, keyword, phrase) #With delay 

YourMailer.phrase_email(user, tweet, keyword, phrase).deliver #Without delay 

YourMailer에서 handle_asynchronously을 제거하십시오.

설명서에 명확하게 언급되어 있습니다. here. 메일러에는 handle_asynchronously을 사용할 수 없습니다.

+0

답장을 보내 주셔서 감사합니다. 나는 그것을 시도하고 나는 어떤 오류 메시지도 얻지 않았다 ... 그러나 나는 어떤 전자 우편도 얻지 않고있다 ... 나는 나중에 한번 더 점검 할 것이다 ... – rastko

+0

콘솔에서 지연된 작업과 지연된 작업 로그를 확인 했습니까? ?? 나는 그것이 올바르게 작동하고 있다고 생각한다. 개발 모드에서받은 편지함으로 메일을 받으려면 구성해야합니다. 그래서 나는 mailtrap을 사용하여 메일이 올바르게 작동하는지 확인합니다. https://github.com/mmower/mailtrap – codeit

+0

안녕하세요. 나는이 문제로 돌아왔다. 그래서 나는 테이블 지연된 작업에서 내 이메일이 저장되고 있지만 결국에는 전송되지 않는다는 것을 알아 냈습니다. 어떻게하면 실제 주소로 이메일을 보낼 수 있습니까? – rastko

관련 문제