| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- Reviewed: no -->
- <!-- EN-Revision: 24249 -->
- <sect1 id="zend.mail.introduction">
- <title>導入</title>
- <sect2 id="zend.mail.introduction.getting-started">
- <title>まずはじめに</title>
- <para>
- <classname>Zend_Mail</classname> は、テキストメールや <acronym>MIME</acronym>
- マルチパートメールを作成・送信するための一般的な機能を提供します。
- <classname>Zend_Mail</classname> を使用すると、デフォルトの
- <classname>Zend_Mail_Transport_Sendmail</classname> か、あるいは
- <classname>Zend_Mail_Transport_Smtp</classname>
- を使用してメールを送信できます。
- </para>
- <example id="zend.mail.introduction.example-1">
- <title>Zend_Mail を使用したシンプルなメール送信</title>
- <para>
- 受信者、表題、本文および送信者を指定しただけの単純なメールです。
- このようなメールを <classname>Zend_Mail_Transport_Sendmail</classname>
- を用いて送信するには、次のようにします。
- </para>
- <programlisting language="php"><![CDATA[
- $mail = new Zend_Mail();
- $mail->setBodyText('This is the text of the mail.');
- $mail->setFrom('somebody@example.com', 'Some Sender');
- $mail->addTo('somebody_else@example.com', 'Some Recipient');
- $mail->setSubject('TestSubject');
- $mail->send();
- ]]></programlisting>
- </example>
- <note>
- <title>最低限の定義</title>
- <para>
- <classname>Zend_Mail</classname> でメールを送信するには、
- 最低 1 か所以上の受信者、送信者 (<methodname>setFrom()</methodname> を使用します)、
- そして本文 (テキストや <acronym>HTML</acronym>) を指定しなければなりません。
- </para>
- </note>
- <para>
- 大半の属性については、その情報を読み込むための "get"
- メソッドが用意されています。詳細は、<acronym>API</acronym> ドキュメントを参照ください。
- <methodname>getRecipients()</methodname> だけは特別で、
- これまでに追加されたすべての受信者アドレスを配列で返します。
- </para>
- <para>
- セキュリティの観点から、<classname>Zend_Mail</classname>
- はすべてのヘッダフィールドの改行文字 (<emphasis>\n</emphasis>) を取り除きます。
- これにより、ヘッダインジェクションを防ぎます。
- 送信者名およびあて先名中の2重引用符は単一引用符に、山括弧は角括弧に変更されます。
- もしその記号がメールアドレス中にある場合は除去されます。
- </para>
- <para>
- <classname>Zend_Mail</classname> オブジェクトのほとんどのメソッドは、
- 流れるようなインターフェイス形式でコールすることもできます。
- </para>
- <programlisting language="php"><![CDATA[
- $mail = new Zend_Mail();
- $mail->setBodyText('This is the text of the mail.')
- ->setFrom('somebody@example.com', 'Some Sender')
- ->addTo('somebody_else@example.com', 'Some Recipient')
- ->setSubject('TestSubject')
- ->send();
- ]]></programlisting>
- </sect2>
- <sect2 id="zend.mail.introduction.sendmail">
- <title>デフォルトの sendmail トランスポートの設定</title>
- <para>
- <classname>Zend_Mail</classname> がデフォルトで使用するのは
- <classname>Zend_Mail_Transport_Sendmail</classname> です。これは、単に
- <acronym>PHP</acronym> の <ulink
- url="http://php.net/mail"><methodname>mail()</methodname></ulink>
- 関数をラップしただけのものです。 <ulink
- url="http://php.net/mail"><methodname>mail()</methodname></ulink>
- 関数に追加のパラメータを渡したい場合は、
- 新しいインスタンスを作成する際のコンストラクタにパラメータを渡します。
- 新しく作成したインスタンスは、<classname>Zend_Mail</classname>
- のデフォルトのトランスポートとすることができます。
- あるいは <classname>Zend_Mail</classname> の <methodname>send()</methodname>
- メソッドに渡すこともできます。
- </para>
- <example id="zend.mail.introduction.sendmail.example-1">
- <title>Zend_Mail_Transport_Sendmail トランスポートへの追加パラメータの渡し方</title>
- <para>
- この例は、<ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
- 関数の Return-Path を変更する方法を示すものです。
- </para>
- <programlisting language="php"><![CDATA[
- $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
- Zend_Mail::setDefaultTransport($tr);
- $mail = new Zend_Mail();
- $mail->setBodyText('This is the text of the mail.');
- $mail->setFrom('somebody@example.com', 'Some Sender');
- $mail->addTo('somebody_else@example.com', 'Some Recipient');
- $mail->setSubject('TestSubject');
- $mail->send();
- ]]></programlisting>
- </example>
- <note>
- <title>セーフモード時の制限</title>
- <para>
- <acronym>PHP</acronym> をセーフモードで実行している場合、オプションの追加パラメータを指定すると
- <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
- 関数の実行に失敗する可能性があります。
- </para>
- </note>
- <warning>
- <title>Sendmail トランスポートと Windows</title>
- <para>
- <acronym>PHP</acronym> マニュアルでは、<methodname>mail()</methodname>関数は Windows と *nix ベースのシステムとでは、
- 異なる振る舞いをすると述べています。
- Windows で Sendmail トランスポートを利用すると、
- <methodname>addBcc()</methodname> との連携は動作しません。
- 他のすべての受信者が、受信者として彼を見られるように、
- <methodname>mail()</methodname> 関数は BCC 受信者に送ります。
- </para>
- <para>
- そのため、もし Windows サーバで BCC を使いたいなら、
- SMTP トランスポートを送信に使ってください。
- </para>
- </warning>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|