| Class | MailHistory |
| In: |
app/models/mail_history.rb
|
| Parent: | ActiveRecord::Base |
メールの履歴のモデル。
配信をスケジューリングする。
# File app/models/mail_history.rb, line 32
32: def self.schedule_to_deliver
33: MiddleMan.schedule_worker({
34: :class => :mail_sender_worker,
35: :args => {
36: :deliver => MailHistory.find(:all, {:conditions => {:status => "failed"}}).map(&:id),
37: },
38: :trigger_args => {
39: :start => Time.now,
40: :repeat_interval => 3.minutes,
41: },
42: })
43: end
配信する。
# File app/models/mail_history.rb, line 46
46: def deliver
47: if self.status == "delivered"
48: logger.warn { "WARN: MailHistory #{id} was already delivered." }
49: return false
50: end
51: text = true
52: MailHistory.transaction do
53: begin
54: AsyncMailer.deliver_formatted_mail(self)
55: self.status = "delivered"
56: rescue => e
57: text = e.inspect
58: if self.error_log.blank?
59: self.error_log = text
60: else
61: self.error_log += "\n" + text
62: end
63: end
64: self.save!
65: end
66: return text
67: end