Zend_Mail-MultipleEmails.xml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  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. <para>
  14. 任意で、既定の reply-to ヘッダだけではなく、既定の email アドレスと名前も
  15. 定義できます。これは静的メソッド <methodname>setDefaultFrom()</methodname>
  16. 及び <methodname>setDefaultReplyTo()</methodname> を介して行なわれます。
  17. これらの既定値は、既定値がリセット(消去)されるまで、 From/Reply-to のアドレスや
  18. 名前を指定しない場合に使われます。
  19. 既定値は <methodname>clearDefaultFrom()</methodname> 及び
  20. <methodname>clearDefaultReplyTo</methodname> を使って消去されます。
  21. </para>
  22. <example id="zend.mail.multiple-emails.example-1">
  23. <title>SMTP 接続による複数のメールの送信</title>
  24. <programlisting language="php"><![CDATA[
  25. // トランスポートを作成します
  26. $config = array('name' => 'sender.example.com');
  27. $transport = new Zend_Mail_Transport_Smtp('mail.example.com', $config);
  28. // 送信するメール全てで使う From 及び Reply-To のアドレス及び名前を設定します
  29. Zend_Mail::setDefaultFrom('sender@example.com', 'John Doe');
  30. Zend_Mail::setDefaultReplyTo('replyto@example.com','Jane Doe');
  31. // メッセージをループ処理します
  32. for ($i = 0; $i < 5; $i++) {
  33. $mail = new Zend_Mail();
  34. $mail->addTo('studio@example.com', 'Test');
  35. $mail->setSubject(
  36. 'Demonstration - Sending Multiple Mails per SMTP Connection'
  37. );
  38. $mail->setBodyText('...Your message here...');
  39. $mail->send($transport);
  40. }
  41. // 既定値をリセットします
  42. Zend_Mail::clearDefaultFrom();
  43. Zend_Mail::clearDefaultReplyTo();
  44. ]]></programlisting>
  45. </example>
  46. <para>
  47. 各配送ごとに別々の接続を使用したい場合は、
  48. <methodname>send()</methodname> メソッドのコールの前後に
  49. トランスポートの作成と廃棄をする必要があります。
  50. あるいは、トランスポートのプロトコルオブジェクトを用いて
  51. 各配送の接続を操作することもできます。
  52. </para>
  53. <example id="zend.mail.multiple-emails.example-2">
  54. <title>トランスポートの接続の手動制御</title>
  55. <programlisting language="php"><![CDATA[
  56. // トランスポートを作成します
  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. // メッセージをループ処理します
  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 - Sending Multiple Mails per SMTP Connection'
  69. );
  70. $mail->setBodyText('...Your message here...');
  71. // 手動で接続を制御します
  72. $protocol->rset();
  73. $mail->send($transport);
  74. }
  75. $protocol->quit();
  76. $protocol->disconnect();
  77. ]]></programlisting>
  78. </example>
  79. </sect1>
  80. <!--
  81. vim:se ts=4 sw=4 et:
  82. -->