2011-03-02 164 views
1

我曾经有发送邮件验证码后,发送带有消息和附着物邮件:问题升级到Rails 3

class MailTimerMailer < ActionMailer::Base 
    def mail_schedule(from, to, cc, bcc, subject, message, files=[], sent_at = Time.now) 
    @subject = subject 
    @recipients = to 
    @from = from 
    @cc = cc 
    @bcc = bcc 
    @sent_on = sent_at 
    @body["message"] = message 
    @headers = {} 

    # attache files 
    files.each do |file| 
     attachment file.mimetype do |a| 
     a.body = file.binarydata 
     a.filename = file.filename 
     end 
    end 

    end 
end

它不再起作用。我对我的邮件没有看法,因为完整的信息来自我的方法之外。我试图修改我的代码的Rails 3这样的:

class ScheduleMailer < ActionMailer::Base 
    def mail_schedule(from, to, cc, bcc, subject, message, files=[], sent_at = Time.now) 
    @subject = subject 
    @recipients = to 
    @from = from 
    @cc = cc 
    @bcc = bcc 
    @sent_on = sent_at 
    @body["message"] = message 
    @headers = {} 

    # attache files 
    files.each do |file| 
     attachments[file.filename] = File.read("public/data/" << file.id.to_s() << "." << file.extension) 
    end 

    end 
end

此代码发送一个邮件与附着物,但也有在邮件中没有实际的消息。它也给了我一个弃用警告“给身体散列已弃用,请改用实例变量”。我试过用“body:message = > message”但没有运气。

我怎样才能再次得到这个工作?

谢谢

回答

3

这是怎么了:

class MyMailer < ActionMailer::Base 
    def mail_schedule(from, to, cc, bcc, subject, message, files=[], sent_at = Time.now) 
    # attache files 
    files.each do |file| 
     attachments[file.filename] = File.read("public/data/" << file.id.to_s() << "." << file.extension) 
    end 

    mail(:from => from, :to => to, :cc => cc, :bcc => bcc, :subject => subject) do |format| 
     format.text { render :text => message } 
    end 
    end 
end
+0

嗨Neigaard,电子邮件与附件文档发送,但我面临的“弃用警告的ActionMailer :: Base.default_content_type =值已弃用,使用默认情况下:content_type =>值代替(在send_email.rb:86处从deliver_email调用)“你能帮我吗?我已经配置了像ActionMailer :: Base.default_content_type =“text/html” – prabu 2011-11-07 12:59:29