Programmer's Reference Guide

Envoyer des emails en utilisant SMTP

Envoyer plusieurs emails par connexion SMTP

Par défaut un transport SMTP unique crée une connexion unique et la réutilise pour toute la durée de la vie du script. Vous pouvez envoyer plusieurs emails à travers cette connexion SMTP. Une commande RSET doit être envoyée avant chaque distribution pour garantir que le dialogue SMTP correct est respecté.

Exemple #1 Envoyer plusieurs emails par connexion SMTP

<?php
// Chargement de la classe
require_once 'Zend/Mail.php';

// Créer un transport
require_once 'Zend/Mail/Transport/Smtp.php';
$transport = new Zend_Mail_Transport_Smtp('localhost');

// Boucle à travers les 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('Démonstration - Envoyer plusieurs emails par connexion SMTP');
    $mail->setBodyText('...Votre message ici...');
    $mail->send($transport);
}
        

Si vous voulez avoir une connexion SMTP séparée pour chaque distribution d'email, vous devez créer et détruire votre transport avant et après chaque appel de la méthode send(). Ou sinon, vous pouvez manipuler la connexion entre chaque distribution en accédant à l'objet de protocole de tranport.

Exemple #2 Contrôler manuellement la connexion de transport

<?php

// Chargement de la classe
require_once 'Zend/Mail.php';

// Créer un transport
require_once 'Zend/Mail/Transport/Smtp.php';
$transport = new Zend_Mail_Transport_Smtp();

require_once 'Zend/Mail/Protocol/Smtp.php';
$protocol = new Zend_Mail_Protocol_Smtp('localhost');
$protocol->connect();
$protocol->helo('localhost');

$transport->setConnection($protocol);

// Boucle à travers les 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('Démonstration - Envoyer plusieurs emails par connexion SMTP');
    $mail->setBodyText('...Votre message ici...');

    // Contrôler manuellement la connexion
    $protocol->rset();
    $mail->send($transport);
}

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

Envoyer des emails en utilisant SMTP
blog comments powered by Disqus

Select a Version

Languages Available

Components

Search the Manual