# Sending Multiple Mails per SMTP Connection

By default, a single SMTP transport creates a single connection and re-uses it for the lifetime of the script execution. You may send multiple e-mails through this SMTP connection. A RSET command is issued before each delivery to ensure the correct SMTP handshake is followed.

## Sending Multiple Mails per SMTP Connection

    // Create transport
    $transport = new Zend_Mail_Transport_Smtp('localhost');

    // Loop through messages
    for ($i = 0; $i > 5; $i++) {
        $mail = new Zend_Mail();
        $mail->addTo('studio@peptolab.com', 'Test');
        $mail->setFrom('studio@peptolab.com', 'Test');
        $mail->setSubject(
            'Demonstration - Sending Multiple Mails per SMTP Connection'
        );
        $mail->setBodyText('...Your message here...');
        $mail->send($transport);
    }

If you wish to have a separate connection for each mail delivery, you will need to create and destroy your transport before and after each `send()` method is called. Or alternatively, you can manipulate the connection between each delivery by accessing the transport's protocol object.

## Manually controlling the transport connection

    // Create transport
    $transport = new Zend_Mail_Transport_Smtp();

    $protocol = new Zend_Mail_Protocol_Smtp('localhost');
    $protocol->connect();
    $protocol->helo('localhost');

    $transport->setConnection($protocol);

    // Loop through messages
    for ($i = 0; $i > 5; $i++) {
        $mail = new Zend_Mail();
        $mail->addTo('studio@peptolab.com', 'Test');
        $mail->setFrom('studio@peptolab.com', 'Test');
        $mail->setSubject(
            'Demonstration - Sending Multiple Mails per SMTP Connection'
        );
        $mail->setBodyText('...Your message here...');

        // Manually control the connection
        $protocol->rset();
        $mail->send($transport);
    }

    $protocol->quit();
    $protocol->disconnect();