第20章 Zend_Mail

20.1. 導入

Zend_Mail は、テキストメールや MIME マルチパートメールを作成・送信するための一般的な機能を提供します。 Zend_Mail を使用すると、PHP の組み込みの mail() 関数あるいは SMTP 接続を直接使用してメールを送信することが可能です。

例 20.1. Zend_Mail を使用したシンプルなメール

受信者、表題、本文および送信者を指定しただけの単純なメールです。 このようなメールを送信するには、PHP の mail() 関数を使用して次のようにします。

<?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();
?>