Zend_Mail-MultipleEmails.xml 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- EN-Revision: 24249 -->
  3. <!-- Reviewed: no -->
  4. <sect1 id="zend.mail.multiple-emails">
  5. <title>Envoyer plusieurs courriels par connexion SMTP</title>
  6. <para>
  7. Par défaut un transport SMTP unique crée une connexion unique et la réutilise pour
  8. toute la durée de la vie du script. Vous pouvez envoyer plusieurs courriels à travers cette
  9. connexion SMTP. Une commande RSET doit être envoyée avant chaque distribution pour garantir
  10. que le dialogue SMTP correct est respecté.
  11. </para>
  12. <para>
  13. Optionally, you can also define a default From email address and name,
  14. as well as a default reply-to header. This can be done through the static
  15. methods <methodname>setDefaultFrom()</methodname> and
  16. <methodname>setDefaultReplyTo()</methodname>. These defaults will be used when you
  17. don't specify a From/Reply-to Address or -Name until the defaults are reset (cleared).
  18. Resetting the defaults can be done through the use of the
  19. <methodname>clearDefaultFrom()</methodname> and
  20. <methodname>clearDefaultReplyTo</methodname>.
  21. </para>
  22. <example id="zend.mail.multiple-emails.example-1">
  23. <title>Envoyer plusieurs courriels par connexion SMTP</title>
  24. <programlisting language="php"><![CDATA[
  25. // Créer un transport
  26. $config = array('name' => 'sender.example.com');
  27. $transport = new Zend_Mail_Transport_Smtp('mail.example.com', $config);
  28. // Ajouter les nom et adresses "From" & "Reply-To" pour tous les courriels
  29. // à envoyer
  30. Zend_Mail::setDefaultFrom('sender@example.com', 'John Doe');
  31. Zend_Mail::setDefaultReplyTo('replyto@example.com','Jane Doe');
  32. // Boucle à travers les messages
  33. for ($i = 0; $i < 5; $i++) {
  34. $mail = new Zend_Mail();
  35. $mail->addTo('studio@example.com', 'Test');
  36. $mail->setSubject(
  37. 'Démonstration - Envoyer plusieurs emails par connexion SMTP'
  38. );
  39. $mail->setBodyText('...Votre message ici...');
  40. $mail->send($transport);
  41. }
  42. // Effacer les valeurs par défaut
  43. Zend_Mail::clearDefaultFrom();
  44. Zend_Mail::clearDefaultReplyTo();
  45. ]]></programlisting>
  46. </example>
  47. <para>
  48. Si vous voulez avoir une connexion SMTP séparée pour chaque distribution de courriel, vous
  49. devez créer et détruire votre transport avant et après chaque appel de la méthode
  50. <methodname>send()</methodname>. Ou sinon, vous pouvez manipuler la connexion entre chaque
  51. distribution en accédant à l'objet de protocole de transport.
  52. </para>
  53. <example id="zend.mail.multiple-emails.example-2">
  54. <title>Contrôler manuellement la connexion de transport</title>
  55. <programlisting language="php"><![CDATA[
  56. // Créer un transport
  57. $transport = new Zend_Mail_Transport_Smtp();
  58. $protocol = new Zend_Mail_Protocol_Smtp('mail.example.com');
  59. $protocol->connect();
  60. $protocol->helo('sender.example.com');
  61. $transport->setConnection($protocol);
  62. // Boucle à travers les messages
  63. for ($i = 0; $i < 5; $i++) {
  64. $mail = new Zend_Mail();
  65. $mail->addTo('studio@example.com', 'Test');
  66. $mail->setFrom('studio@example.com', 'Test');
  67. $mail->setSubject(
  68. 'Démonstration - Envoyer plusieurs emails par connexion SMTP'
  69. );
  70. $mail->setBodyText('...Votre message ici...');
  71. // Contrôler manuellement la connexion
  72. $protocol->rset();
  73. $mail->send($transport);
  74. }
  75. $protocol->quit();
  76. $protocol->disconnect();
  77. ]]></programlisting>
  78. </example>
  79. </sect1>