CakePHP1.2で深いこと考えずに日本語メール
なんか深夜映画って訳わからんな。
聞いたこともないイギリスの青春映画がやっている。
で、
まぁ素直にPEAR::Mail を使ってしまってもいいんじゃないかと思うのです。
CakePHP1.2のオリジナルのEmailComponentから使えそうな箇所(レンダリングとか)を借りつつ作成。
PHP:
-
<?php
-
require_once('Mail.php');
-
-
class MyEmailComponent extends Object{
-
-
var $controller = null;
-
// var $layout = 'dafault';
-
var $layout = null;
-
-
var $sendAs = 'text';
-
var $from = null;
-
var $to = null;
-
var $subject = null;
-
var $mail = null;
-
-
function startup(&$controller) {
-
$this->controller =& $controller;
-
}
-
-
function send() {
-
-
$from = $this->from;
-
$to = $this->to;
-
$subject = $this->subject;
-
-
$headers['From'] = $this->from;
-
$headers['Subject'] =
-
-
$body = $this->__renderTemplate();
-
-
$this->mail->send($to, $headers, $body);
-
-
return;
-
}
-
-
function __renderTemplate() {
-
$viewClass = $this->controller->view;
-
-
if ($viewClass != 'View') {
-
}
-
$viewClass = $viewClass . 'View';
-
loadView($this->controller->view);
-
}
-
$View = new $viewClass($this->controller, false);
-
$View->layout = $this->layout;
-
-
$content = $View->renderElement('email' . DS . $this->sendAs . DS . $this->template, $this->data, true);
-
-
if ($View->layout) {
-
$View->layoutPath = 'email' . DS . $this->sendAs;
-
$msg = $View->renderLayout($content);
-
} else {
-
$msg = $content;
-
}
-
-
return $msg;
-
}
-
}
使い方。
PHP:
-
<?php
-
$this->MyEmail->from = 'fromaddress@example.com';
-
$this->MyEmail->to = 'toaddress@example.com';
-
$this->MyEmail->subject = '件名';
-
$this->MyEmail->template = 'test';
-
$this->MyEmail->send();
TrackBack URL :
Comments (0)