PEAR Manual
Prev |  | Next

# constructor Mail_Queue::Mail_Queue()

constructor Mail_Queue::Mail_Queue() -- Mail_Queue constructor

## Synopsis

    require_once 'Mail/Queue.php';

``mixed constructor Mail_Queue::Mail_Queue` (array $container_options, array $mail_options)`

## Description

Creates a new mail queue object to store mails in, fetch mails from and send mails with.

## Parameter

array `$container_options`

  Array of container (mail storage) options. See tutorial for details.

array `$mail_options`

  Array of mailer options. See tutorial for details.

##

Example 46-1.
    <?php

    require_once 'Mail/Queue.php';

    $container_options = array(
        'type'        => 'db',
        'database'    => 'dbname',
        'phptype'     => 'mysql',
        'username'    => 'root',
        'password'    => '',
        'mail_table'  => 'mail_queue',
    );
    //optionally, a 'dns' string can be provided instead of db parameters.
    //look at DB::connect() method or at DB or MDB docs for details.
    //you could also use mdb container instead db
    $mail_options = array(
        'driver'   => 'smtp',
        'host'     => 'your_smtp_server.com',
        'port'     => 25,
        'auth'     => false,
        'username' => '',
        'password' => '',
    );

    $mail_queue =& new Mail_Queue($container_options, $mail_options);

    * *****************************************************************
    * // TO ADD AN EMAIL TO THE QUEUE
    * *****************************************************************
    $from             = 'user@server.com';
    $from_name        = 'admin';
    $recipient        = 'recipient@other_server.com';
    $recipient_name   = 'recipient';
    $message          = 'Test message';
    $from_params      = empty($from_name) ? '<'.$from.'>' : '"'.$from_name.'" <'.$from.'>';
    $recipient_params = empty($recipient_name) ? '<'.$recipient.'>' : '"'.$recipient_name.'" <'.$recipient.'>';
    $hdrs = array(
        'From'    => $from_params,
        'To'      => $recipient_params,
        'Subject' => 'test message body',
    );
    $mime =& new Mail_mime();
    $mime->setTXTBody($message);
    $body = $mime->get();
    $hdrs = $mime->headers($hdrs);

    // Put message to queue
    $mail_queue->put($from, $recipient, $hdrs, $body);

    // Also you could put this msg in more advanced mode
    $seconds_to_send = 3600;
    $delete_after_send = false;
    $id_user = 7;
    $mail_queue->put( $from, $recipient, $hdrs, $body, $seconds_to_send, $delete_after_send, $id_user );

    // TO SEND EMAILS IN THE QUEUE

    // How many mails could we send each time
    $max_ammount_mails = 50;
    $mail_queue =& new Mail_Queue($container_options, $mail_options);
    $mail_queue->sendMailsInQueue($max_ammount_mails);

    ?>

## Return value

returnsTrue on success else pear error class.

## Throws

throws no exceptions thrown

## Note

This function can not be called statically.

Prev | Home | Next
Tutorial | Up | Mail_Queue::deleteMail()