1 <?xml version="1.0" encoding="UTF-8"?>
3 <!-- EN-Revision: 21740 -->
4 <sect1 id="zend.mail.introduction">
8 <sect2 id="zend.mail.introduction.getting-started">
13 <classname>Zend_Mail</classname> は、テキストメールや <acronym>MIME</acronym>
14 マルチパートメールを作成・送信するための一般的な機能を提供します。
15 <classname>Zend_Mail</classname> を使用すると、デフォルトの
16 <classname>Zend_Mail_Transport_Sendmail</classname> か、あるいは
17 <classname>Zend_Mail_Transport_Smtp</classname>
21 <example id="zend.mail.introduction.example-1">
23 <title>Zend_Mail を使用したシンプルなメール送信</title>
26 受信者、表題、本文および送信者を指定しただけの単純なメールです。
27 このようなメールを <classname>Zend_Mail_Transport_Sendmail</classname>
31 <programlisting language="php"><![CDATA[
32 $mail = new Zend_Mail();
33 $mail->setBodyText('This is the text of the mail.');
34 $mail->setFrom('somebody@example.com', 'Some Sender');
35 $mail->addTo('somebody_else@example.com', 'Some Recipient');
36 $mail->setSubject('TestSubject');
46 <classname>Zend_Mail</classname> でメールを送信するには、
47 最低 1 か所以上の受信者、送信者 (<methodname>setFrom()</methodname> を使用します)、
48 そして本文 (テキストや HTML) を指定しなければなりません。
53 大半の属性については、その情報を読み込むための "get"
54 メソッドが用意されています。詳細は、<acronym>API</acronym> ドキュメントを参照ください。
55 <methodname>getRecipients()</methodname> だけは特別で、
56 これまでに追加されたすべての受信者アドレスを配列で返します。
60 セキュリティの観点から、<classname>Zend_Mail</classname>
61 はすべてのヘッダフィールドの改行文字 (<code>\n</code>) を取り除きます。
62 これにより、ヘッダインジェクションを防ぎます。
63 送信者名およびあて先名中の2重引用符は単一引用符に、山括弧は角括弧に変更されます。
64 もしその記号がメールアドレス中にある場合は除去されます。
68 <classname>Zend_Mail</classname> オブジェクトのほとんどのメソッドは、
69 流れるようなインターフェイス形式でコールすることもできます。
72 <programlisting language="php"><![CDATA[
73 $mail = new Zend_Mail();
74 $mail->setBodyText('This is the text of the mail.')
75 ->setFrom('somebody@example.com', 'Some Sender')
76 ->addTo('somebody_else@example.com', 'Some Recipient')
77 ->setSubject('TestSubject')
83 <sect2 id="zend.mail.introduction.sendmail">
85 <title>デフォルトの sendmail トランスポートの設定</title>
88 <classname>Zend_Mail</classname> がデフォルトで使用するのは
89 <classname>Zend_Mail_Transport_Sendmail</classname> です。これは、単に
90 <acronym>PHP</acronym> の <ulink
91 url="http://php.net/mail"><methodname>mail()</methodname></ulink>
92 関数をラップしただけのものです。 <ulink
93 url="http://php.net/mail"><methodname>mail()</methodname></ulink>
95 新しいインスタンスを作成する際のコンストラクタにパラメータを渡します。
96 新しく作成したインスタンスは、<classname>Zend_Mail</classname>
97 のデフォルトのトランスポートとすることができます。
98 あるいは <classname>Zend_Mail</classname> の <methodname>send()</methodname>
102 <example id="zend.mail.introduction.sendmail.example-1">
104 <title>Zend_Mail_Transport_Sendmail トランスポートへの追加パラメータの渡し方</title>
107 この例は、<ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
108 関数の Return-Path を変更する方法を示すものです。
111 <programlisting language="php"><![CDATA[
112 $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
113 Zend_Mail::setDefaultTransport($tr);
115 $mail = new Zend_Mail();
116 $mail->setBodyText('This is the text of the mail.');
117 $mail->setFrom('somebody@example.com', 'Some Sender');
118 $mail->addTo('somebody_else@example.com', 'Some Recipient');
119 $mail->setSubject('TestSubject');
126 <title>セーフモード時の制限</title>
128 <acronym>PHP</acronym> をセーフモードで実行している場合、オプションの追加パラメータを指定すると
129 <ulink url="http://php.net/mail"><methodname>mail()</methodname></ulink>
135 <title>Sendmail トランスポートと Windows</title>
138 <acronym>PHP</acronym> マニュアルでは、<methodname>mail()</methodname>関数は Windows と *nix ベースのシステムとでは、
140 Windows で Sendmail トランスポートを利用すると、
141 <methodname>addBcc()</methodname> との連携は動作しません。
142 他のすべての受信者が、受信者として彼を見られるように、
143 <methodname>mail()</methodname> 関数は BCC 受信者に送ります。
147 そのため、もし Windows サーバで BCC を使いたいなら、
148 SMTP トランスポートを送信に使ってください。