Qdmailで日本語のメール送信

Permalink2008/08/07 15:46:52
カテゴリ: コンポーネント, コントローラー

CakePHP1.2 RC2

CakePHP でメールを送信する機能は色々な方が作成されていますが、今回は Qdmail を利用してみました。

参考:使い方 CakePHPでのメール送信 - Qdmail - PHP::Mail Library , Quick and Detailed for Multibyte

1.ダウンロード

こちらより最新版をダウンロードします。

2.設置

app/controllers/components/ 配下にダウンロードした qdmail.php を設置します。

3.ソースを書く

コントローラーに下記のように記載します。

<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 の設定が生きたままになってしまいます。(当たり前ですね)


関連記事


    この記事へのトラックバック アドレス

    コメント, トラックバック:

    トラックバック: 北青山通信 - from aoyama [訪問者]
    QdmailでCakePHPのViewで送ると文字化けする。
    現在、CakePHPのサイトを作成していますが、メールを送信する処理があります。今まですとmb_send_mail()を使ったクラスを用意していましたが、せっかくCakePHPを使っているということで、Qdmai...
    Permalink永続的リンク 2008/10/02 @ 00:22
    トラックバック: 3流プログラマのメモ書き [訪問者]
    (cakePHP)Qdmailを使った日本語メール送信
    以前にフレームワークを使わないPHPで日本語を送る方法を書きました。
    cakePHPにはフレームワークなんだから、メールくらい簡単に遅れるだろうと思ってましたが、どうやら標準のメール...
    Permalink永続的リンク 2008/11/11 @ 09:48

    コメントを残す:

    頂いたメールアドレスはこのサイト上には表示されません
    頂いたURLは表示されます。

    許可される XHTML タグ: <p, ul, ol, li, dl, dt, dd, address, blockquote, ins, del, span, bdo, br, em, strong, dfn, code, samp, kdb, var, cite, abbr, acronym, q, sub, sup, tt, i, b, big, small>
    (改行が自動で <br /> になります)
    (名前、メールアドレス、URLを記憶する Cookie を発行します)
    (ユーザがメッセージ・フォームを通してあなたに連絡することを許可します (あなたのメール・アドレスは表示されません))

    プロフィール
    岐阜県中津川市加子母在住のあつ@株式会社一六社(いちろくしゃ)スタッフ

    あつへのメッセージはSkypeを使ってテキストメッセージでどうぞ
    あつ

    CakePHPに関する情報をまとめていきます。

    開発スピードがアップできればうれしいです。

    >>連絡はこちらへどうぞ

    CakePHPを中心とした勉強会を無料で開催していますので、これからCakePHPを始めるという方でもぜひお越しください。
    >>詳しくはこちらへ(高蔵寺SE勉強会)


    CakePHP関連のブックマーク


    CakePHP最新版
    CakePHP 1.2.3.8166


    CakePHPの書籍

    CakePHPによる実践Webアプリケーション開発

    CakePHP1.2で作成する人にオススメ。
    とても参考になります。

    まるごとPHP!(vol.2)

    安藤さんの解説が載っています。
    AmazonのPagination部分は参考になります。

    CakePHPによるWebアプリケーション開発

    まだ読んだことありません

    CakePHPポケットリファレンス
    CakePHPポケットリファレンス
    CakePHP1.2 でやるなら、これがあると何かと便利♪

    CakePHP徹底入門
    CakePHP徹底入門
    CakePHP1.2 を今から始めるならここから

    Fast CakePHP
    Fast CakePHP
    シンプルでわかりやすい CakePHP の入門書

    CakePHPガイドブック
    CakePHPガイドブック
    CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

    アーカイブ

     RSS2.0

    powered by
    b2evolution
    ブログ一六社

    Geo Visitors Map