0

非同期メール送信を設定しようとしています。私はdelayed_jobを使用しています。delayd_jobがなければ、すべてがエラーなしで機能します。しかし、私が追加すると:

handle_asynchronously :mail_sending_method

次のエラーが発生します。

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

特に次のように、メールの送信にActionMailerを使用します。

mail(:to => user.email, :from => "notifications@example.com", :subject => "Blah")

方法は次のとおりです。

def phrase_email(user, tweet, keyword, phrase)
    @user = user
    @tweet = tweet
    @keyword = keyword
    @phrase = phrase
    mail(:to => user.email, :from => "notifications@example.com", :subject => "Weekapp     Phrase Notification")
end
4

1 に答える 1

2

遅延ジョブは、Rails3では動作が異なり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 => "notifications@example.com", :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

そしてhandle_asynchronously、YourMailerから削除します。

これは、ここのドキュメントに明確に記載されています。handle_asynchronouslyメーラーでは使用できません。

于 2013-03-13T18:45:00.320 に答える