2013-03-13 91 views
0

我试图设置异步电子邮件发送。我正在使用delayed_job。 Withoud delayed_job一切正常,没有任何错误。但是,当我补充一下:Rails delayed_jobs在发送邮件时询问“发件人/发件人”

handle_asynchronously :mail_sending_method 

我收到以下错误:

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

我用的ActionMailer用于发送邮件,特别是这样的:

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 2013-03-13 18:21:29

+0

我已加入 – rastko 2013-03-13 18:36:09

回答

2

延迟工作w与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 

因此,如下使用delaydeliver一边打电话到你的邮件的方法。

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 2013-03-13 19:41:11

+0

您是否检查了延迟的作业从控制台和延迟的作业日志??我认为这是正确的。要以开发模式将邮件发送到收件箱,您需要配置一些内容。所以我使用'mailtrap'来检查邮件是否正常工作。看到这个https://github.com/mmower/mailtrap – codeit 2013-03-13 19:45:24

+0

嗨,再次。我回到了这个问题。所以我发现在表格延迟的工作中,我的电子邮件正在储存,但最终不会发送。我怎样才能让它发送电子邮件到真实地址? – rastko 2013-03-26 10:57:38

相关问题