Adam Kapelner
2008-May-03  02:20 UTC
[Backgroundrb-devel] backgroundrb / actionmailer / sendmail
Hello,
I''m trying to send emails from a backgroundrb worker and the email
doesn''t
send. I get no log messages in the sendmail log or the system log, nothing
in the backgroundrb logs at all, nothing in the production log.
Below is my code for each component
worker:
class QuizReviewerWorker < BackgrounDRb::MetaWorker
  set_worker_name :quiz_review_sender
  def create(args = nil)
  end
  def send_review_emails
    mail = Notifier.create_test_email
    status = Notifier.deliver(mail)
    logger.info ''test mail:'' + mail.body
  end
end
mailer:
class Notifier < ActionMailer::Base
  def test_email
    recipients ''kapelner at gmail.com''
    subject ''test email''
    body ''body of email''
    content_type "text/plain"
  end
end
backgroundrb configuration:
---
:backgroundrb:
  :ip: 0.0.0.0
  :port: 11006
  :environment: production
  :debug_log: true
:schedules:
  :quiz_review_sender:
    :send_review_emails:
      :trigger_args:
        :start: <%= Time.now + 30.seconds %>
        :end: <%= Time.now + 10.years %>
        :repeat_interval: <%= 20.seconds %>
environment.rb configuration:
ActionMailer::Base.delivery_method = :sendmail
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.default_content_type = ''text/html''
Now, when doing the request from rails itself, no problem, I get the email
instantly. Here''s the controller code:
class MiscellanyController < ApplicationController
  def test_email
    mail = Notifier.create_test_email
    Notifier.deliver(mail)
    render :text => mail.body
  end
end
What could be the issue? I''m using Ruby 1.8.6, Rails 1.2.5, on Fedora
Core
6, Backgroundrb (last updated 2008-02-28)
thanks so much,
Adam
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://rubyforge.org/pipermail/backgroundrb-devel/attachments/20080502/262655b2/attachment-0001.html>
Jason Lee
2008-May-03  15:42 UTC
[Backgroundrb-devel] backgroundrb / actionmailer / sendmail
Adam,
Not sure if it''s a Rails 1.2.5 issue (I''m on 2.0.2).
I''ve used the
scheduler before and found it not as reliable as Unix cron, so I moved
the scheduling code into the worker itself. I have BRb doing
background scheduled email tasks and it works quite well. Here''s what
mine looks like:
class EmailWorker < BackgrounDRb::MetaWorker
  set_worker_name :Email_worker
  def create(args = nil)
    # time argument is in seconds
    add_periodic_timer(10) { process_orders }
  end
  def process
     # do some work
  end
end
My config looks like so (for development):
---
:backgroundrb:
    :ip: 0.0.0.0
    :port: 11006
    :environment: development
I removed all my scheduler code out of the config and it works well,
so maybe that will help.
- jason
On Fri, May 2, 2008 at 7:20 PM, Adam Kapelner <kapelner at gmail.com>
wrote:> Hello,
>
> I''m trying to send emails from a backgroundrb worker and the email
doesn''t
> send. I get no log messages in the sendmail log or the system log, nothing
> in the backgroundrb logs at all, nothing in the production log.
>
> Below is my code for each component
>
> worker:
>
> class QuizReviewerWorker < BackgrounDRb::MetaWorker
>    set_worker_name :quiz_review_sender
>
>    def create(args = nil)
>   end
>
>   def send_review_emails
>     mail = Notifier.create_test_email
>      status = Notifier.deliver(mail)
>     logger.info ''test mail:'' + mail.body
>    end
> end
>
> mailer:
>
>  class Notifier < ActionMailer::Base
>
>   def test_email
>      recipients ''kapelner at gmail.com''
>     subject ''test email''
>      body ''body of email''
>     content_type "text/plain"
>    end
> end
>
> backgroundrb configuration:
>
>  ---
> :backgroundrb:
>    :ip: 0.0.0.0
>   :port: 11006
>    :environment: production
>   :debug_log: true
>  :schedules:
>   :quiz_review_sender:
>      :send_review_emails:
>       :trigger_args:
>          :start: <%= Time.now + 30.seconds %>
>         :end: <%= Time.now + 10.years %>
>          :repeat_interval: <%= 20.seconds %>
>
> environment.rb configuration:
>
> ActionMailer::Base.delivery_method = :sendmail
>  ActionMailer::Base.raise_delivery_errors = true
> ActionMailer::Base.default_content_type = ''text/html''
>
>
> Now, when doing the request from rails itself, no problem, I get the email
> instantly. Here''s the controller code:
>
> class MiscellanyController < ApplicationController
>    def test_email
>     mail = Notifier.create_test_email
>      Notifier.deliver(mail)
>     render :text => mail.body
>    end
> end
>
>
> What could be the issue? I''m using Ruby 1.8.6, Rails 1.2.5, on
Fedora Core
> 6, Backgroundrb (last updated 2008-02-28)
>
> thanks so much,
> Adam
>
>
>
>
>
>
> _______________________________________________
>  Backgroundrb-devel mailing list
>  Backgroundrb-devel at rubyforge.org
>  http://rubyforge.org/mailman/listinfo/backgroundrb-devel
>
Jason Lee
2008-May-03  15:43 UTC
[Backgroundrb-devel] backgroundrb / actionmailer / sendmail
Oops! My method is called process_orders and not ''process''. Sorry :) - jason On Sat, May 3, 2008 at 8:42 AM, Jason Lee <jasonlee9 at gmail.com> wrote:> Adam, > > Not sure if it''s a Rails 1.2.5 issue (I''m on 2.0.2). I''ve used the > scheduler before and found it not as reliable as Unix cron, so I moved > the scheduling code into the worker itself. I have BRb doing > background scheduled email tasks and it works quite well. Here''s what > mine looks like: > > class EmailWorker < BackgrounDRb::MetaWorker > > set_worker_name :Email_worker > > def create(args = nil) > # time argument is in seconds > add_periodic_timer(10) { process_orders } > end > > def process > # do some work > end > > end > > > My config looks like so (for development): > > --- > > :backgroundrb: > :ip: 0.0.0.0 > :port: 11006 > :environment: development > > > I removed all my scheduler code out of the config and it works well, > so maybe that will help. > > - jason > > > > > On Fri, May 2, 2008 at 7:20 PM, Adam Kapelner <kapelner at gmail.com> wrote: > > Hello, > > > > I''m trying to send emails from a backgroundrb worker and the email doesn''t > > send. I get no log messages in the sendmail log or the system log, nothing > > in the backgroundrb logs at all, nothing in the production log. > > > > Below is my code for each component > > > > worker: > > > > class QuizReviewerWorker < BackgrounDRb::MetaWorker > > set_worker_name :quiz_review_sender > > > > def create(args = nil) > > end > > > > def send_review_emails > > mail = Notifier.create_test_email > > status = Notifier.deliver(mail) > > logger.info ''test mail:'' + mail.body > > end > > end > > > > mailer: > > > > class Notifier < ActionMailer::Base > > > > def test_email > > recipients ''kapelner at gmail.com'' > > subject ''test email'' > > body ''body of email'' > > content_type "text/plain" > > end > > end > > > > backgroundrb configuration: > > > > --- > > :backgroundrb: > > :ip: 0.0.0.0 > > :port: 11006 > > :environment: production > > :debug_log: true > > :schedules: > > :quiz_review_sender: > > :send_review_emails: > > :trigger_args: > > :start: <%= Time.now + 30.seconds %> > > :end: <%= Time.now + 10.years %> > > :repeat_interval: <%= 20.seconds %> > > > > environment.rb configuration: > > > > ActionMailer::Base.delivery_method = :sendmail > > ActionMailer::Base.raise_delivery_errors = true > > ActionMailer::Base.default_content_type = ''text/html'' > > > > > > Now, when doing the request from rails itself, no problem, I get the email > > instantly. Here''s the controller code: > > > > class MiscellanyController < ApplicationController > > def test_email > > mail = Notifier.create_test_email > > Notifier.deliver(mail) > > render :text => mail.body > > end > > end > > > > > > What could be the issue? I''m using Ruby 1.8.6, Rails 1.2.5, on Fedora Core > > 6, Backgroundrb (last updated 2008-02-28) > > > > thanks so much, > > Adam > > > > > > > > > > > > > > _______________________________________________ > > Backgroundrb-devel mailing list > > Backgroundrb-devel at rubyforge.org > > http://rubyforge.org/mailman/listinfo/backgroundrb-devel > > >