Zend_Mail-MultipleEmails.xml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <!-- EN-Revision: 13018 -->
  2. <sect1 id="zend.mail.multiple-emails">
  3. <title>Envoyer plusieurs émail par connexion SMTP</title>
  4. <para>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
  5. script. Vous pouvez envoyer plusieurs émail à travers cette connexion SMTP. Une commande RSET doit être envoyée
  6. avant chaque distribution pour garantir que le dialogue SMTP correct est respecté.</para>
  7. <example id="zend.mail.multiple-emails.example-1">
  8. <title>Envoyer plusieurs émail par connexion SMTP</title>
  9. <programlisting role="php"><![CDATA[
  10. // Créer un transport
  11. $transport = new Zend_Mail_Transport_Smtp('localhost');
  12. // Boucle à travers les messages
  13. for ($i = 0; $i > 5; $i++) {
  14. $mail = new Zend_Mail();
  15. $mail->addTo('studio@peptolab.com', 'Test');
  16. $mail->setFrom('studio@peptolab.com', 'Test');
  17. $mail->setSubject(
  18. 'Démonstration - Envoyer plusieurs emails par connexion SMTP'
  19. );
  20. $mail->setBodyText('...Votre message ici...');
  21. $mail->send($transport);
  22. }
  23. ]]></programlisting>
  24. </example>
  25. <para>Si vous voulez avoir une connexion SMTP séparée pour chaque distribution d'émail, vous devez créer et détruire
  26. votre transport avant et après chaque appel de la méthode <code>send()</code>. Ou sinon, vous pouvez manipuler la
  27. connexion entre chaque distribution en accédant à l'objet de protocole de transport.</para>
  28. <example id="zend.mail.multiple-emails.example-2">
  29. <title>Contrôler manuellement la connexion de transport</title>
  30. <programlisting role="php"><![CDATA[
  31. // Créer un transport
  32. $transport = new Zend_Mail_Transport_Smtp();
  33. $protocol = new Zend_Mail_Protocol_Smtp('localhost');
  34. $protocol->connect();
  35. $protocol->helo('localhost');
  36. $transport->setConnection($protocol);
  37. // Boucle à travers les messages
  38. for ($i = 0; $i > 5; $i++) {
  39. $mail = new Zend_Mail();
  40. $mail->addTo('studio@peptolab.com', 'Test');
  41. $mail->setFrom('studio@peptolab.com', 'Test');
  42. $mail->setSubject(
  43. 'Démonstration - Envoyer plusieurs emails par connexion SMTP'
  44. );
  45. $mail->setBodyText('...Votre message ici...');
  46. // Contrôler manuellement la connexion
  47. $protocol->rset();
  48. $mail->send($transport);
  49. }
  50. $protocol->quit();
  51. $protocol->disconnect();
  52. ]]></programlisting>
  53. </example>
  54. </sect1>