CakePHP1.2 RC2
CakePHP でメールを送信する機能は色々な方が作成されていますが、今回は Qdmail を利用してみました。
参考:使い方 CakePHPでのメール送信 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte
こちらより最新版をダウンロードします。
app/controllers/components/ 配下にダウンロードした qdmail.php を設置します。
コントローラーに下記のように記載します。
<php
class SampleController extends AppController
{
var $components = array('Qdmail');
function index()
{
$this->Qdmail->to('to@example.com', 'お客様');
$this->Qdmail->from('from@example.com', '管理者');
$this->Qdmail->subject('ご利用ありがとうございます');
$this->Qdmail->cakeText($contents, 'sample1', 'sample2', null, 'iso-2022-jp');
$this->Qdmail->send();
}
}
(※エレメントが文字化けしてしまう場合は、cakeText の第5パラメータで iso-2022-jp を指定)
そして、メールの本文をエレメント( app/views/elements/email/text/sample1.ctp )で用意します。
同様にレイアウト( app/views/layouts/email/text/sample2.ctp )も用意します。
これだけで送信できます。
ただし、内部的に mail 関数が呼ばれているので、SafeMode 環境化で利用すると、第5パラメータを指定している部分でエラーとなります。
↑こちらは1.1.1bバージョンにて解消して頂けました。(2008/9/11 追記)
詳しくはこちら。
【その他】
ヘッダーの追加
$this->Qdmail->addHeader('Return-Path', 'sample@example.com');
BCC
$this->Qdmail->bcc('bcc@example.com');
2008/9/4 追記
一つのアクション内で異なるメールを送信する場合、一度設定をクリアーするのを忘れないように。
$this->Qdmail->reset();
これをやっておかないと、1つ目のメールで BCC を設定して、次のメールで BCC の設定をしなくても、一つ目の BCC の設定が生きたままになってしまいます。(当たり前ですね)

CakePHPに関する情報をまとめていきます。
開発スピードがアップできればうれしいです。
>>連絡はこちらへどうぞ
CakePHPを中心とした勉強会を無料で開催していますので、これからCakePHPを始めるという方でもぜひお越しください。
>>詳しくはこちらへ(高蔵寺SE勉強会)
CakePHP関連のブックマーク
CakePHP最新版
CakePHP 1.2.3.8166
CakePHPの書籍
CakePHPによる実践Webアプリケーション開発
![]()
CakePHP1.2で作成する人にオススメ。
とても参考になります。
まるごとPHP!(vol.2)
![]()
安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。
CakePHPによるWebアプリケーション開発
![]()
まだ読んだことありません
CakePHPポケットリファレンス![]()
CakePHP1.2 でやるなら、これがあると何かと便利♪
CakePHP徹底入門![]()
CakePHP1.2 を今から始めるならここから
Fast CakePHP![]()
シンプルでわかりやすい CakePHP の入門書
CakePHPガイドブック![]()
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書