Programmer's Reference Guide
| Zend_Mail |
導入
まずはじめに
Zend_Mail は、テキストメールや MIME
マルチパートメールを作成・送信するための一般的な機能を提供します。
Zend_Mail を使用すると、デフォルトの
Zend_Mail_Transport_Sendmail か、あるいは
Zend_Mail_Transport_Smtp
を使用してメールを送信することが可能です。
例1 Zend_Mail を使用したシンプルなメール送信
受信者、表題、本文および送信者を指定しただけの単純なメールです。
このようなメールを Zend_Mail_Transport_Sendmail
を用いて送信するには、次のようにします。
<?php
require_once 'Zend/Mail.php';
$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();
注意: 最低限の定義
Zend_Mailでメールを送信するには、 最低 1 か所以上の受信者、送信者 (setFrom()を使用します)、 そして本文 (テキストや HTML) を指定しなければなりません。
大半の属性については、その情報を読み込むための "get"
メソッドが用意されています。詳細は、API ドキュメントを参照ください。
getRecipients() だけは特別で、
これまでに追加されたすべての受信者アドレスを配列で返します。
セキュリティの観点から、Zend_Mail
はすべてのヘッダフィールドの改行文字 (\n) を取り除きます。
これにより、ヘッダインジェクションを防ぎます。
Zend_Mail オブジェクトのほとんどのメソッドは、 流暢なインターフェイス形式でコールすることもできます。 「流暢なインターフェイス」とは、 各メソッドの返り値が呼び出し元オブジェクト自身への参照となり、 その返り値からすぐに別のメソッドをコールできる形式のことを表します。
<?php
require_once 'Zend/Mail.php';
$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();
デフォルトの sendmail トランスポートの設定
Zend_Mail がデフォルトで使用するのは Zend_Mail_Transport_Sendmail
です。これは、単に PHP の » mail()
関数をラップしただけのものです。
» mail()
関数に追加のパラメータを渡したい場合は、
新しいインスタンスを作成する際のコンストラクタにパラメータを渡します。
新しく作成したインスタンスは、Zend_Mail
のデフォルトのトランスポートとすることができます。
あるいは Zend_Mail の send()
メソッドに渡すこともできます。
例2 Zend_Mail_Transport_Sendmail トランスポートへの追加パラメータの渡し方
この例は、» mail()
関数の Return-Path を変更する方法を示すものです。
<?php
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Sendmail.php';
$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();
注意: セーフモード時の制限
PHP をセーフモードで実行している場合、オプションの追加パラメータを指定すると »mail()関数の実行に失敗する可能性があります。
| Zend_Mail |
