CakePHP HTML Email 發送...
其實一般的 email 用 mail function 就可以發了,但是通常我們會要的更多,例如有表格拉,或是特殊字要有字型或是顏色變化等。這時候就需要用到 html email
可以先參考這篇 http://wiki.cakephp.org/tutorials:sending_email。
不過在我實際運作的時候這個會有一點問題,像是內含圖片的複雜 html 似乎會無法正常顯現。
所以我改用了 PEAR::Mail 來作為主要發送工具,另外利用 Mail:mime 作為email內容產生。
以下是我自己改的程式碼,不過要注意的是,必須先自己在 vendor中建立 pear 得程式庫。
<?php
class EmailComponent
{
var $tpl;
var $to = null;
var $from = null;
var $subject = null;
var $cc = null;
var $bcc = null;
var $controller;
function message()
{
ob_start();
$this->controller->render($this->tpl,($this->controller->layout == 'ajax'? 'ajax':'email'));
$mail = ob_get_clean();
return $mail;
}
function send()
{
vendor('pear/Mail');
vendor('pear/Mail/mime');
$crlf = "n";
$html = $this->message();
$hdrs = array(
'From' => $this->from,
'CC' => $this->cc,
'BCC' => $this->bcc,
'Subject' => $this->subject,
'Content-type' => 'text/html; charset=UTF-8'
);
$mime = new Mail_mime($crlf);
$mime->setHTMLBody($html);
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mail =& Mail::factory('sendmail');
$success = $mail->send($this->to, $hdrs, $body);
return $success;
}
}
?>
另外可以參考的文章是這篇:http://wiki.cakephp.org/tutorials:sending_email_with_phpmailer
不過我還沒有時間測試,所以也不知道會怎樣囉∼
[@more@]





迴響
目前沒有人留言.