Zend_Mail-MultipleEmails.xml 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 19426 -->
  4. <sect1 id="zend.mail.multiple-emails">
  5. <title>SMTP 接続による複数のメールの送信</title>
  6. <para>
  7. デフォルトでは、ひとつの SMTP トランスポートが
  8. ひとつの接続を作成し、スクリプトの実行中はそれを使いまわします。
  9. この SMTP 接続で、複数のメールを送信できます。
  10. SMTP のハンドシェイクを正しく行うには、
  11. メッセージの配送の前に RSET コマンドを発行します。
  12. </para>
  13. <example id="zend.mail.multiple-emails.example-1">
  14. <title>SMTP 接続による複数のメールの送信</title>
  15. <programlisting language="php"><![CDATA[
  16. // トランスポートを作成します
  17. $config = array('name' => 'sender.example.com');
  18. $transport = new Zend_Mail_Transport_Smtp('mail.example.com', $config);
  19. // メッセージをループ処理します
  20. for ($i = 0; $i < 5; $i++) {
  21. $mail = new Zend_Mail();
  22. $mail->addTo('studio@peptolab.com', 'Test');
  23. $mail->setFrom('studio@peptolab.com', 'Test');
  24. $mail->setSubject(
  25. 'Demonstration - Sending Multiple Mails per SMTP Connection'
  26. );
  27. $mail->setBodyText('...Your message here...');
  28. $mail->send($transport);
  29. }
  30. ]]></programlisting>
  31. </example>
  32. <para>
  33. 各配送ごとに別々の接続を使用したい場合は、
  34. <methodname>send()</methodname> メソッドのコールの前後に
  35. トランスポートの作成と廃棄をする必要があります。
  36. あるいは、トランスポートのプロトコルオブジェクトを用いて
  37. 各配送の接続を操作することもできます。
  38. </para>
  39. <example id="zend.mail.multiple-emails.example-2">
  40. <title>トランスポートの接続の手動制御</title>
  41. <programlisting language="php"><![CDATA[
  42. // トランスポートを作成します
  43. $transport = new Zend_Mail_Transport_Smtp();
  44. $protocol = new Zend_Mail_Protocol_Smtp('mail.example.com');
  45. $protocol->connect();
  46. $protocol->helo('sender.example.com');
  47. $transport->setConnection($protocol);
  48. // メッセージをループ処理します
  49. for ($i = 0; $i < 5; $i++) {
  50. $mail = new Zend_Mail();
  51. $mail->addTo('studio@peptolab.com', 'Test');
  52. $mail->setFrom('studio@peptolab.com', 'Test');
  53. $mail->setSubject(
  54. 'Demonstration - Sending Multiple Mails per SMTP Connection'
  55. );
  56. $mail->setBodyText('...Your message here...');
  57. // 手動で接続を制御します
  58. $protocol->rset();
  59. $mail->send($transport);
  60. }
  61. $protocol->quit();
  62. $protocol->disconnect();
  63. ]]></programlisting>
  64. </example>
  65. </sect1>
  66. <!--
  67. vim:se ts=4 sw=4 et:
  68. -->