• []
  • []
  •  
  • del.icio.us 
  •  
  • Yahoo!֥åޡϿ 

synfony メール送信

PHP 求人 募集 Symfony CakePHP Smarty Ruby on Rails

symfony確認画面を作るへ戻る

synfony メール送信 概要

最後にメール送信を行う。
symfonyにはメール送信機能がadonという形で搭載されている。
これを利用してメールを送信する。

synfony メール送信

メール用のアクションとビューを追加する。

apps/myapp/modules/inquiry/actions/actions.class.php

class inquiryActions extends sfActions
{
  ・・・
  public function executeSendmail()
  {
    // class initialization
    $mail = new sfMail();
    $mail->setCharset('utf-8');      
 
    $mail->addAddress("dozo@matrix.jp" );
    $mail->setSubject( 'お問い合せ' );
 
    $this->mail = $mail;          
 
  }
 
 
  public function executeDo()
  {
      switch( $this->getRequestParameter("act") )
      {
        case "index":
            $this->forward("inquiry", "confirm");
            break;
        case "confirm":
            if( $this->getRequestParameter("commit") != "" ){
                $mail = $this->sendEmail("inquiry", "sendmail");
                $this->logMessage($mail, 'debug');
                $this->redirect("/inquiry/end");
            }
            else
                $this->forward("inquiry", "index");
            break;
        default:
            $this->forward("inquiry", "index");
            break;
      }
  }
}

apps/myapp/modules/inquiry/templates/sendmailSuccess.php

お問い合せ
氏名:<?= $sf_params->getRaw("name") ?> 
メールアドレス: <?= $sf_params->getRaw("mail") ?> 
問い合わせ内容:
<?= $sf_params->getRaw("inquiry") ?>

synfony テスト

テストツールを使ってと行きたいところだが、
メール送信に関するテストツールはない。
なので確認ページで作成したテストを実行し
メールが一通だけ届けば問題なしとする。

$ symfony test-functional myapp inquiryActions

自身のメールアドレスにメールが届いているか、
記述内容はテストのパラメータと一致しているかを確認する。

これでアプリケーションは完成です。
実際にはもっと複雑なロジック、セキュリティ対策が必要ですが
その部分を補えば強固はシステムになるでしょう。

symfonyへ戻る


framework/symfony/メール送信.txt · 最終更新: 2007/06/18 01:42 by dozo