閲覧総計:3965  (本日:1  昨日:0)

CakePHP1.2には新たに「Email」コンポーネントが実装されたが、残念ながら日本語
メールには完全対応できていない模様である。
http://handsout.jp/slide/225
の20ページ
1.1行の文字数が78文字を越えると文字化けの可能性あり。
2.差出人名が日本語未対応

そこで、日本語に強い「Qdmail」コンポーネントを活用することにした。 09/01/16
http://hal456.net/qdmail/

【目次】(項目をクリックすると、そこに飛べます)


サーバでのQdmailの利用

【参考ページ】
使い方 CakePHPでのQdmail送信
http://hal456.net/qdmail/cakebase
Qdmailで日本語のメール送信
http://cakephp.blog16.jp/index.php/2008/08/07/p49

Qdmailをダウンロードし、解凍。Qdmail.phpファイルを利用したいアプリの
/controllers/components/フォルダの中に入れる。
http://hal456.net/qdmail/
ここでは、/cakephp/Qdmail/controllers/components/フォルダ。

/cakephp/Qdmail/controllers/nodbs_controller.php

<?php
class NodbsController extends AppController {

    var $name = 'Nodbs'; //controllerの名前を定義
    var $uses = array(); //データベースは使用しない
    var $components = array( 'Qdmail' ); //使用するcomponentを明示

    function index() {

    }

    function add() {
        if (!empty($this->data)) { //dataが空でない場合
            mb_language('ja');

            $this->Qdmail->to($this->data['Nodb']['to_email']);
            $this->Qdmail->subject($this->data['Nodb']['subject']);
            $this->Qdmail->from('hoge@nifty.com', '日本語差出人名');
            $this->Qdmail->text($this->data['Nodb']['body']);
            $this->Qdmail->send();
            
            $this->flash('メールを送信しました。', '/nodbs'); //flashでメッセージ表示し、/nodbs/index.ctpへ
        } else {
        }
    }
}
?>

/cakephp/Qdmail/views/nodbs/index.ctp

<?php echo $form->create('Nodb'); //model名 Nodbでform開始タグを生成 ?>
    <?php echo $form->input('to_email', array('type'=>'text')); ?>
    <?php echo $form->input('subject', array('type'=>'text')); ?>
    <?php echo $form->input('body', array('type'=>'textarea')); ?>
<?php echo $form->end(' 送信 '); ?>

http://www.hoge.co.jp/cakephp/Qdmail/nodbs
Qdmailフォームlocal.JPG

これでサーバアプリからメールが発信できる様になります。
発信→受信の確認をしてみてください。

受信したメール内容
Qdmail受信メール例.JPG


選択肢 投票
参考になった 1  
ふつう 0  
参考にならなかった 0  

WindowsローカルPCでのQdmailの利用

【参考ページ】
QdsmtpをCakePHPコンポーネントとして使う
http://hal456.net/qdsmtp/cakephp
Cakephpで日本語メール送信
http://umakoya.com/blog/log/eid525.html

※WindowsローカルPCからのメール発信には、Qdmailコンポーネントに加え、Qdsmtpコンポーネントを
利用します。 09/01/17
http://hal456.net/qdsmtp/
http://hal456.net/qdmail/

上記サイトからダウンロード・解凍したQdsmtp.phpとQdmail.phpの2つのファイルを
/cakephp/Qdmail/controllers/components/フォルダ内に入れる。

/cakephp/Qdmail/controllers/nodbs_controller.php

<?php
class NodbsController extends AppController {

    var $name = 'Nodbs'; //controllerの名前を定義
    var $uses = array(); //データベースは使用しない
    var $components = array( 'Qdsmtp', 'Qdmail' ); //使用するcomponentを明示

    function index() {

    }

    function add() {
        if (!empty($this->data)) { //dataが空でない場合
            mb_language('ja');
            $this->Qdmail->smtp(true);
            $param = array(
            'host'=>'smtp.nifty.com', //プロバイダniftyのsmtpを利用する
            'port'=>25,
            'from'=>'hoge@nifty.com',
            'protocol'=>'SMTP'
            );
            
            $this->Qdmail->smtpServer($param);
            $this->Qdmail->to($this->data['Nodb']['to_email']);
            $this->Qdmail->subject($this->data['Nodb']['subject']);
            $this->Qdmail->from('hoge@nifty.com', '日本語差出人名');
            $this->Qdmail->text($this->data['Nodb']['body']);
            $this->Qdmail->send();
            
            $this->flash('メールを送信しました。', '/nodbs'); //flashでメッセージ表示し、/nodbs/index.ctpへ
        } else {
        }
    }
}
?>

/cakephp/Qdmail/views/nodbs/index.ctp

<?php echo $form->create('Nodb'); //model名 Nodbでform開始タグを生成 ?>
    <?php echo $form->input('to_email', array('type'=>'text')); ?>
    <?php echo $form->input('subject', array('type'=>'text')); ?>
    <?php echo $form->input('body', array('type'=>'textarea')); ?>
<?php echo $form->end(' 送信 '); ?>

http://localhost/cakephp/Qdmail/nodbs
Qdmailフォームlocal.JPG

これでWindowsローカルPCからメールが発信できる様になります。
発信→受信の確認をしてみてください。

受信したメール内容
Qdmail受信メール例.JPG


選択肢 投票
参考になった 0  
ふつう 0  
参考にならなかった 0  

添付ファイル: fileQdmail受信メール例.JPG 775件 [詳細] fileQdmailフォームlocal.JPG 836件 [詳細]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-09-29 (金) 15:08:45 (2572d)