Zend_Mail-MultipleEmails.xml 3.6 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>Versand von mehreren E-Mails über eine SMTP Verbindung</title>
  6. <para>
  7. Standardmäßig erstellt ein einzelner SMTP Transport eine einzelne Verbindung und verwendet
  8. sie wieder während der Laufzeit der Skriptausführung. Es können mehrere E-Mails über diese
  9. SMTP Verbindung gesendet werden. Ein RSET Kommando wird vor jeder Ausführung angewendet um
  10. sicherzustellen das der korrekte SMTP Handschlag folgt.
  11. </para>
  12. <para>
  13. Optional kann auch eine standardmäßige From Emailadresse und Name definiert werden sowie ein
  14. standardmäßiger reply-to Header. Das kann durch die statischen Methoden
  15. <methodname>setDefaultFrom()</methodname> und <methodname>setDefaultReplyTo()</methodname>
  16. getan werden. Diese Standardwerte werden verwendet wenn man keine From oder Reply-to Adresse
  17. oder -Name angibt bis die Standardwerte zurückgesetzt werden (gelöscht). Das Zurücksetzen
  18. der Standardwerte kann durch die Verwendung von <methodname>clearDefaultFrom()</methodname>
  19. und <methodname>clearDefaultReplyTo</methodname> durchgeführt werden.
  20. </para>
  21. <example id="zend.mail.multiple-emails.example-1">
  22. <title>Versand von mehreren E-Mails über eine SMTP Verbindung</title>
  23. <programlisting language="php"><![CDATA[
  24. // Transport erstellen
  25. $config = array('name' => 'sender.example.com');
  26. $transport = new Zend_Mail_Transport_Smtp('mail.example.com', $config);
  27. // Setzt From & Reply-To Adressen
  28. // und Namen für alle Emails die zu versenden sind
  29. Zend_Mail::setDefaultFrom('sender@example.com', 'John Doe');
  30. Zend_Mail::setDefaultReplyTo('replyto@example.com','Jane Doe');
  31. // Durch die Nachrichten gehen
  32. for ($i = 0; $i < 5; $i++) {
  33. $mail = new Zend_Mail();
  34. $mail->addTo('studio@example.com', 'Test');
  35. $mail->setFrom('studio@example.com', 'Test');
  36. $mail->setSubject(
  37. 'Demonstration - mit einer SMTP Verbindung mehrfache E-Mails senden'
  38. );
  39. $mail->setBodyText('...Hier die Nachricht...');
  40. $mail->send($transport);
  41. }
  42. // Setzt die Standardwerte zurück
  43. Zend_Mail::clearDefaultFrom();
  44. Zend_Mail::clearDefaultReplyTo();
  45. ]]></programlisting>
  46. </example>
  47. <para>
  48. Wenn man eine separate Verbindung für jeden Mailtransport haben will, muß der Transport vor
  49. und nach jedem Aufruf der <methodname>send()</methodname> Methode erstellt und gelöscht
  50. werden. Oder alternativ kann die Verbindung zwischen jedem Transport, durch Zugriff auf das
  51. Protokoll Objekt des Transportes, manipuliert werden.
  52. </para>
  53. <example id="zend.mail.multiple-emails.example-2">
  54. <title>Die Transportverbindung manuell kontrollieren</title>
  55. <programlisting language="php"><![CDATA[
  56. // Transport erstellen
  57. $transport = new Zend_Mail_Transport_Smtp();
  58. $protocol = new Zend_Mail_Protocol_Smtp('mail.example.com');
  59. $protocol->connect();
  60. $protocol->helo('mail.example.com');
  61. $transport->setConnection($protocol);
  62. // Durch die Nachrichten gehen
  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. 'Demonstration - mit einer SMTP Verbindung mehrfache E-Mails senden'
  69. );
  70. $mail->setBodyText('...Hier die Nachricht...');
  71. // Die Verbindung manuell kontrollieren
  72. $protocol->rset();
  73. $mail->send($transport);
  74. }
  75. $protocol->quit();
  76. $protocol->disconnect();
  77. ]]></programlisting>
  78. </example>
  79. </sect1>