Zend_Mail-Introduction.xml 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <!-- EN-Revision: 24249 -->
  4. <sect1 id="zend.mail.introduction">
  5. <title>導入</title>
  6. <sect2 id="zend.mail.introduction.getting-started">
  7. <title>まずはじめに</title>
  8. <para>
  9. <classname>Zend_Mail</classname> は、テキストメールや <acronym>MIME</acronym>
  10. マルチパートメールを作成・送信するための一般的な機能を提供します。
  11. <classname>Zend_Mail</classname> を使用すると、デフォルトの
  12. <classname>Zend_Mail_Transport_Sendmail</classname> か、あるいは
  13. <classname>Zend_Mail_Transport_Smtp</classname>
  14. を使用してメールを送信できます。
  15. </para>
  16. <example id="zend.mail.introduction.example-1">
  17. <title>Zend_Mail を使用したシンプルなメール送信</title>
  18. <para>
  19. 受信者、表題、本文および送信者を指定しただけの単純なメールです。
  20. このようなメールを <classname>Zend_Mail_Transport_Sendmail</classname>
  21. を用いて送信するには、次のようにします。
  22. </para>
  23. <programlisting language="php"><![CDATA[
  24. $mail = new Zend_Mail();
  25. $mail->setBodyText('This is the text of the mail.');
  26. $mail->setFrom('somebody@example.com', 'Some Sender');
  27. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  28. $mail->setSubject('TestSubject');
  29. $mail->send();
  30. ]]></programlisting>
  31. </example>
  32. <note>
  33. <title>最低限の定義</title>
  34. <para>
  35. <classname>Zend_Mail</classname> でメールを送信するには、
  36. 最低 1 か所以上の受信者、送信者 (<methodname>setFrom()</methodname> を使用します)、
  37. そして本文 (テキストや <acronym>HTML</acronym>) を指定しなければなりません。
  38. </para>
  39. </note>
  40. <para>
  41. 大半の属性については、その情報を読み込むための "get"
  42. メソッドが用意されています。詳細は、<acronym>API</acronym> ドキュメントを参照ください。
  43. <methodname>getRecipients()</methodname> だけは特別で、
  44. これまでに追加されたすべての受信者アドレスを配列で返します。
  45. </para>
  46. <para>
  47. セキュリティの観点から、<classname>Zend_Mail</classname>
  48. はすべてのヘッダフィールドの改行文字 (<emphasis>\n</emphasis>) を取り除きます。
  49. これにより、ヘッダインジェクションを防ぎます。
  50. 送信者名およびあて先名中の2重引用符は単一引用符に、山括弧は角括弧に変更されます。
  51. もしその記号がメールアドレス中にある場合は除去されます。
  52. </para>
  53. <para>
  54. <classname>Zend_Mail</classname> オブジェクトのほとんどのメソッドは、
  55. 流れるようなインターフェイス形式でコールすることもできます。
  56. </para>
  57. <programlisting language="php"><![CDATA[
  58. $mail = new Zend_Mail();
  59. $mail->setBodyText('This is the text of the mail.')
  60. ->setFrom('somebody@example.com', 'Some Sender')
  61. ->addTo('somebody_else@example.com', 'Some Recipient')
  62. ->setSubject('TestSubject')
  63. ->send();
  64. ]]></programlisting>
  65. </sect2>
  66. <sect2 id="zend.mail.introduction.sendmail">
  67. <title>デフォルトの sendmail トランスポートの設定</title>
  68. <para>
  69. <classname>Zend_Mail</classname> がデフォルトで使用するのは
  70. <classname>Zend_Mail_Transport_Sendmail</classname> です。これは、単に
  71. <acronym>PHP</acronym> の <ulink
  72. url="http://php.net/mail"><methodname>mail()</methodname></ulink>
  73. 関数をラップしただけのものです。 <ulink
  74. url="http://php.net/mail"><methodname>mail()</methodname></ulink>
  75. 関数に追加のパラメータを渡したい場合は、
  76. 新しいインスタンスを作成する際のコンストラクタにパラメータを渡します。
  77. 新しく作成したインスタンスは、<classname>Zend_Mail</classname>
  78. のデフォルトのトランスポートとすることができます。
  79. あるいは <classname>Zend_Mail</classname> の <methodname>send()</methodname>
  80. メソッドに渡すこともできます。
  81. </para>
  82. <example id="zend.mail.introduction.sendmail.example-1">
  83. <title>Zend_Mail_Transport_Sendmail トランスポートへの追加パラメータの渡し方</title>
  84. <para>
  85. この例は、<ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
  86. 関数の Return-Path を変更する方法を示すものです。
  87. </para>
  88. <programlisting language="php"><![CDATA[
  89. $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
  90. Zend_Mail::setDefaultTransport($tr);
  91. $mail = new Zend_Mail();
  92. $mail->setBodyText('This is the text of the mail.');
  93. $mail->setFrom('somebody@example.com', 'Some Sender');
  94. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  95. $mail->setSubject('TestSubject');
  96. $mail->send();
  97. ]]></programlisting>
  98. </example>
  99. <note>
  100. <title>セーフモード時の制限</title>
  101. <para>
  102. <acronym>PHP</acronym> をセーフモードで実行している場合、オプションの追加パラメータを指定すると
  103. <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
  104. 関数の実行に失敗する可能性があります。
  105. </para>
  106. </note>
  107. <warning>
  108. <title>Sendmail トランスポートと Windows</title>
  109. <para>
  110. <acronym>PHP</acronym> マニュアルでは、<methodname>mail()</methodname>関数は Windows と *nix ベースのシステムとでは、
  111. 異なる振る舞いをすると述べています。
  112. Windows で Sendmail トランスポートを利用すると、
  113. <methodname>addBcc()</methodname> との連携は動作しません。
  114. 他のすべての受信者が、受信者として彼を見られるように、
  115. <methodname>mail()</methodname> 関数は BCC 受信者に送ります。
  116. </para>
  117. <para>
  118. そのため、もし Windows サーバで BCC を使いたいなら、
  119. SMTP トランスポートを送信に使ってください。
  120. </para>
  121. </warning>
  122. </sect2>
  123. </sect1>
  124. <!--
  125. vim:se ts=4 sw=4 et:
  126. -->