Рассылка нескольких пользователей - PullRequest
1 голос
/ 01 февраля 2010

Я уже выяснил, как отправлять электронные письма пользователям в отдельности (кто-то вводит их адрес электронной почты, и модель почтовой программы отправляет этому человеку электронное письмо, используя friend.email (друг - модель, а электронная почта - атрибут).

Сейчас я пытаюсь отправить электронное письмо нескольким пользователям. Я начал писать процесс в моей модели User, как показано ниже:

  class User < ActiveRecord::Base

  acts_as_authentic

  def mail_out

    weekday = Date.today.strftime(%A).downcase

    @users = find(:conditions => "#{weekday}sub = t")

    @users.each { |u| UserMailer.deliver_mail_out(u)}   


  end

end

Я знаю, что, вероятно, есть гораздо лучший способ сделать это, но у каждого пользователя в моей базе данных может быть t или f для mondaysub, tuesdaysub и т. Д. Поэтому я хочу выбросить всех пользователей с атрибутом mondaysub, установленным в "t" "в переменную @monday (одинаково для каждого дня недели). Теперь я хочу проверить день недели и, если это понедельник, отправить электронное письмо каждому из пользователей в переменной @monday. Я использовал всякий раз, когда следующее:

 every 1.day, :at => '5:30 am' do
    runner "User.mail_out"
  end

Это вызовет процесс mail_out в моей модели один раз в день (я думаю).

Теперь у меня есть настройки почтовой программы:

class UserMailer < ActionMailer::Base
    def mail_out(users)
    @recipients = { }
    users.each do |user|
      @recipients[user.email] = { :name => user.name }
    end


    from        "no-reply@dailytrailer.net"
    subject     "Check out the trailer of the day!"
    body        :user => user
  end

end

У меня вопрос, как мне соединить их вместе, я надеюсь, что я на правильном пути ... Я хочу это каждое утро в 5:00, если это понедельник, то каждый пользователь с mondaysub установлен на "t msgstr "отправлен специальный шаблон Я начинаю действительно смущать себя, любая помощь будет очень благодарна. Как вы можете сказать, я новичок в этом, но я читал тонны книг / учебных пособий.

Спасибо!

Ответы [ 2 ]

1 голос
/ 01 февраля 2010

Для такого рода массовой рассылки по электронной почте вам действительно следует подумать об аутсорсинге проблемы. Взгляните на PostageApp , что делает тривиальным отправку электронной почты нескольким получателям . Это одобрено DHH!

0 голосов
/ 01 февраля 2010

Проверьте этот эпизод Railscast о отправке электронной почты. Вам просто нужно создать файл шаблона для вашей электронной почты на views / usermailer / mail_out.erb.html .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...