Zend_Mail-MultipleEmails.xml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <sect1 id="zend.mail.multiple-emails">
  3. <title>Отправка нескольких сообщений за одно SMTP-соединение</title>
  4. <para>
  5. По умолчанию один SMTP-транспорт создает одно соединение и повторно
  6. использует его за все время выполнения скрипта. Вы можете отправлять
  7. несколько сообщений через это SMTP-соединение.
  8. До каждой отправки передается команда RSET для получения подтверждения
  9. связи.
  10. </para>
  11. <example id="zend.mail.multiple-emails.example-1">
  12. <title>Отправка нескольких сообщений за одно SMTP-соединение</title>
  13. <programlisting language="php"><![CDATA[
  14. // Создание транспорта
  15. $transport = new Zend_Mail_Transport_Smtp('localhost');
  16. // Цикл с отправкой сообщений
  17. for ($i = 0; $i > 5; $i++) {
  18. $mail = new Zend_Mail();
  19. $mail->addTo('studio@peptolab.com', 'Test');
  20. $mail->setFrom('studio@peptolab.com', 'Test');
  21. $mail->setSubject(
  22. 'Demonstration - Sending Multiple Mails per SMTP Connection'
  23. );
  24. $mail->setBodyText('...Your message here...');
  25. $mail->send($transport);
  26. }
  27. ]]></programlisting>
  28. </example>
  29. <para>
  30. Если вы хотите создавать отдельное соединение для каждой отправки
  31. сообщения, то вам нужно создавать и уничтожать объект транспорта до и
  32. после каждого вызова метода <methodname>send()</methodname>.
  33. Либо вы можете управлять соединением между отправками, используя
  34. объект протокола транспорта.
  35. </para>
  36. <example id="zend.mail.multiple-emails.example-2">
  37. <title>Управление транспортным соединением вручную</title>
  38. <programlisting language="php"><![CDATA[
  39. // Создание транспорта
  40. $transport = new Zend_Mail_Transport_Smtp();
  41. $protocol = new Zend_Mail_Protocol_Smtp('localhost');
  42. $protocol->connect();
  43. $protocol->helo('localhost');
  44. $transport->setConnection($protocol);
  45. // Цикл с отправкой сообщений
  46. for ($i = 0; $i > 5; $i++) {
  47. $mail = new Zend_Mail();
  48. $mail->addTo('studio@peptolab.com', 'Test');
  49. $mail->setFrom('studio@peptolab.com', 'Test');
  50. $mail->setSubject(
  51. 'Demonstration - Sending Multiple Mails per SMTP Connection'
  52. );
  53. $mail->setBodyText('...Your message here...');
  54. // Управление соединением вручную
  55. $protocol->rset();
  56. $mail->send($transport);
  57. }
  58. $protocol->quit();
  59. $protocol->disconnect();
  60. ]]></programlisting>
  61. </example>
  62. </sect1>
  63. <!--
  64. vim:se ts=4 sw=4 et:
  65. -->