The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

TheSchwartz::Worker::SendEmail - sends email using SMTP

SYNOPSIS

  use TheSchwartz;
  use TheSchwartz::Worker::SendEmail;
  TheSchwartz::Worker::SendEmail->set_HELO("example.com");
  my $sclient = TheSchwartz->new(databases => \@Conf::YOUR_DBS);
  $sclient->can_do("TheSchwartz::Worker::SendEmail");
  $sclient->work; # main loop of program; goes forever, sending email

DESCRIPTION

This is a worker class for sending email (designed for lots of email) using TheSchwartz job queue and a slightly-tweaked subclass of Net::SMTP. See TheSchwartz for more information.

JOB ARGUMENTS

When constructing a SendEmail job using TheSchwartz's insert_job method, construct your TheSchwartz::Job instance with its 'argument' of the following form:

   {
      # recipients:
      rcpts    => [ $email1, $email2, ... ],
      env_from => $envelope_from_address,
      data     => $headers_and_body_as_big_string,
   }

Note that "Bcc:" headers will be removed, and a "Message-ID" header will be added if not present, but nothing else is magical. This module does no MIME, etc. There are other modules for that.

CLASS METHODS

set_resolver

   TheSchwartz::Worker::SendEmail->set_resolver($net_dns_resolver_obj)

Sets the DNS resolver object to use. By default, just uses a new Net::DNS::Resolver.

set_HELO

   TheSchwartz::Worker::SendEmail->set_HELO("example.com");

Sets the domain to announce in your HELO.

set_on_5xx

    TheSchwartz::Worker::SendEmail->set_on_5xx(sub {
        my ($email, $thesch_job, $smtp_code_space_message) = @_;
    });

Set a subref to be run upon encountering a 5xx error. Arguments to your subref are the email address, TheSchwartz::Job object, and a scalar string of the form "SMTP_CODE SMTP_MESSAGE". The return value of your subref is ignored.

AUTHOR

Brad Fitzpatrick -- brad@danga.com

COPYRIGHT, LICENSE, and WARRANTY

Copyright 2006-2007, SixApart, Ltd.

License to use under the same terms as Perl itself.

This software comes with no warranty of any kind.

SEE ALSO

TheSchwartz