閲覧総計: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
これでサーバアプリからメールが発信できる様になります。
発信→受信の確認をしてみてください。
受信したメール内容
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
これでWindowsローカルPCからメールが発信できる様になります。
発信→受信の確認をしてみてください。
受信したメール内容