class MailCron include Mongoid::Document include Mongoid::Timestamps field :mail_from_app field :mail_from field :mail_to field :mail_reply_to field :mail_subject field :mail_content, :type => Hash field :mail_sentdate , :type => DateTime field :create_user_id field :update_user_id has_many :mail_cron_files, :autosave => true, :dependent => :destroy accepts_nested_attributes_for :mail_cron_files, :allow_destroy => true after_save :save_mail_cron_files def save_mail_cron_files self.mail_cron_files.each do |t| if t.should_destroy t.destroy end end end def self.send_mail_now(mail_cron_id) mail_data = MailCron.find(mail_cron_id) if !mail_data.blank? @mail_j = 0 @read_mails = Array.new @mails = mail_data.mail_to.split(",") @mails.each do |send_mail| @read_mails << send_mail @mail_j += 1 if 0 == @mail_j % 30 MailCronMailer.cron_mail( mail_data.id, @read_mails.join(',') ).deliver @read_mails = Array.new sleep 10 end end if !@read_mails.join(',').blank? MailCronMailer.cron_mail( mail_data.id, @read_mails.join(',') ).deliver @read_mails = Array.new sleep 10 end end end end