Zend Framework の紹介

 Learning Zend Framework

appendix

 Zend Framework リファレンス


  • 第36章 Zend_Gdata
  • 第37章 Zend_Http
  • 第38章 Zend_InfoCard
  • 第39章 Zend_Json
  • 第40章 Zend_Layout
  • 第41章 Zend_Ldap
  • 第42章 Zend_Loader
  • 第43章 Zend_Locale
  • 第44章 Zend_Log
  • 第45章 Zend_Mail
  • 第46章 Zend_Markup
  • 第47章 Zend_Measure
  • 第48章 Zend_Memory
  • 第49章 Zend_Mime
  • 第50章 Zend_Navigation
  • 第51章 Zend_Oauth
  • 第52章 Zend_OpenId
  • 第53章 Zend_Paginator
  • 第54章 Zend_Pdf
  • 第55章 Zend_ProgressBar
  • 第56章 Zend_Queue
  • 第57章 Zend_Reflection
  • 第58章 Zend_Registry
  • 第59章 Zend_Rest

  • 第60章 Zend_Search_Lucene
  • 第61章 Zend_Serializer
  • 第62章 Zend_Server
  • 第63章 Zend_Service
  • 第64章 Zend_Session
  • 第65章 Zend_Soap
  • 第66章 Zend_Tag
  • 第67章 Zend_Test
  • 第68章 Zend_Text
  • 第69章 Zend_TimeSync
  • 第70章 Zend_Tool
  • 第71章 Zend_Tool_Framework
  • 第72章 Zend_Tool_Project
  • 第73章 Zend_Translate
  • 第74章 Zend_Uri
  • 第75章 Zend_Validate
  • 第76章 Zend_Version
  • 第77章 Zend_View
  • 第78章 Zend_Wildfire
  • 第79章 Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 70.6% Update 2010-11-28 - Revision 23415

    第45章 Zend_Mail

    45.1. 導入

    45.1.1. まずはじめに

    Zend_Mail は、テキストメールや MIME マルチパートメールを作成・送信するための一般的な機能を提供します。 Zend_Mail を使用すると、デフォルトの Zend_Mail_Transport_Sendmail か、あるいは Zend_Mail_Transport_Smtp を使用してメールを送信できます。

    例 45.1. Zend_Mail を使用したシンプルなメール送信

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

    $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) を取り除きます。 これにより、ヘッダインジェクションを防ぎます。 送信者名およびあて先名中の2重引用符は単一引用符に、山括弧は角括弧に変更されます。 もしその記号がメールアドレス中にある場合は除去されます。

    Zend_Mail オブジェクトのほとんどのメソッドは、 流れるようなインターフェイス形式でコールすることもできます。

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

    45.1.2. デフォルトの sendmail トランスポートの設定

    Zend_Mail がデフォルトで使用するのは Zend_Mail_Transport_Sendmail です。これは、単に PHPmail() 関数をラップしただけのものです。 mail() 関数に追加のパラメータを渡したい場合は、 新しいインスタンスを作成する際のコンストラクタにパラメータを渡します。 新しく作成したインスタンスは、Zend_Mail のデフォルトのトランスポートとすることができます。 あるいは Zend_Mailsend() メソッドに渡すこともできます。

    例 45.2. Zend_Mail_Transport_Sendmail トランスポートへの追加パラメータの渡し方

    この例は、mail() 関数の Return-Path を変更する方法を示すものです。

    $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() 関数の実行に失敗する可能性があります。

    [警告] Sendmail トランスポートと Windows

    PHP マニュアルでは、mail()関数は Windows と *nix ベースのシステムとでは、 異なる振る舞いをすると述べています。 Windows で Sendmail トランスポートを利用すると、 addBcc() との連携は動作しません。 他のすべての受信者が、受信者として彼を見られるように、 mail() 関数は BCC 受信者に送ります。

    そのため、もし Windows サーバで BCC を使いたいなら、 SMTP トランスポートを送信に使ってください。

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...