Zend_Mail-MultipleEmails.xml 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <sect1 id="zend.mail.multiple-emails">
  2. <title> 通过一个SMTP连接发送多个邮 </title>
  3. <para>
  4. 在缺省状态下,单个的 SMTP 传送器创建一个单个的连接并在整个脚本执行的生命周期重用,你可以这个 SMTP 连接发送多个邮件。每次投递之前发出一个 RSET 命令确保正确的 SMTP 握手被跟随。
  5. </para>
  6. <example id="zend.mail.multiple-emails.example-1">
  7. <title> 通过一个SMTP连接发送多个邮件 </title>
  8. <programlisting role="php"><![CDATA[<?php
  9. // Load classes
  10. require_once 'Zend/Mail.php';
  11. // Create transport
  12. require_once 'Zend/Mail/Transport/Smtp.php';
  13. $transport = new Zend_Mail_Transport_Smtp('localhost');
  14. // Loop through messages
  15. for ($i = 0; $i > 5; $i++) {
  16. $mail = new Zend_Mail();
  17. $mail->addTo('studio@peptolab.com', 'Test');
  18. $mail->setFrom('studio@peptolab.com', 'Test');
  19. $mail->setSubject('Demonstration - Sending Multiple Mails per SMTP Connection');
  20. $mail->setBodyText('...Your message here...');
  21. $mail->send($transport);
  22. }]]>
  23. </programlisting>
  24. </example>
  25. <para>
  26. 如果想给每个邮件投递配备一个单独的连接,你需要在 <function>send()</function>方法备调用的之前和之后创建和毁灭传送器;或者,在每个通过访问传送器协议对象投递之间处理连接。
  27. </para>
  28. <example id="zend.mail.multiple-emails.example-2">
  29. <title> 手工控制传送器连接 </title>
  30. <programlisting role="php"><![CDATA[<?php
  31. // Load classes
  32. require_once 'Zend/Mail.php';
  33. // Create transport
  34. require_once 'Zend/Mail/Transport/Smtp.php';
  35. $transport = new Zend_Mail_Transport_Smtp();
  36. require_once 'Zend/Mail/Protocol/Smtp.php';
  37. $protocol = new Zend_Mail_Protocol_Smtp('localhost');
  38. $protocol->connect();
  39. $protocol->helo('localhost');
  40. $transport->setConnection($protocol);
  41. // Loop through messages
  42. for ($i = 0; $i > 5; $i++) {
  43. $mail = new Zend_Mail();
  44. $mail->addTo('studio@peptolab.com', 'Test');
  45. $mail->setFrom('studio@peptolab.com', 'Test');
  46. $mail->setSubject('Demonstration - Sending Multiple Mails per SMTP Connection');
  47. $mail->setBodyText('...Your message here...');
  48. // Manually control the connection
  49. $protocol->rset();
  50. $mail->send($transport);
  51. }
  52. $protocol->quit();
  53. $protocol->disconnect();]]>
  54. </programlisting>
  55. </example>
  56. </sect1>
  57. <!--
  58. vim:se ts=4 sw=4 et:
  59. -->