symfonyで日本語メール:実践編

最初に見つけたのはjpMailクラスだったのだが、このコードだけ見せられても使い方がわからなかったので、さらに調べて前の記事のようなサイトにたどり着いた。そういうわけでjpMailクラスの使い方をすこしまとめてみる。

まずは action.class.php (モジュール名は moduleName モジュールとする)

action.class.php

<?php
...
    $this->sendEmail('moduleName', 'hogemail');
    //sendEmailはアクションクラスの関数。
    //引数はモジュール名(mduleName)と、アクション名(hogemailとする)。
...
  //hogemailというアクションで送信部分を書く
  function executeHogemail()
  {
    $mail = new jpMail();
    $mail->initialize();
    $mail->setMailer('sendmail');
   
    // definition of the required parameters
    $mail->setSender($from_address);
    $mail->setFrom($from_address);
    $mail->addReplyTo($from_address);
    $mail->addAddress($send_to_address);
    $mail->setSubject($mail_subject);
    
    $this->body = $mail_body;
    
    $this->mail = $mail;
    //これで、明示的にsend()しなくても勝手に送ってくれる。
  }

$from_address, $send_to_address, $mail_subject, $mail_body に適当な変数を入れる。

メール本文は、templateの方に書く。今回はメールフォーム的な内容だったので、本文だけtemplateに入れてる。templateの中身はエンコーディングUTF-8で文字化けしない。

successHogemail.php

<?php echo $body ?>

肝心のjpMailは、コピペしたソースをjpMail.class.phpという名前で保存し、しかるべきところに置いておく。どこかというと、/lib/ か、 /app//lib あたり。まあ、jpMailはこのアプリ固有のクラスという訳でもないので、/lib/ に置くといいと思う。