CakePHP HTML Email 發送...

Posted on 2006-08-16 14:11:41 by darkhero

其實一般的 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@]

Tags: CakePHP

加入書籤: 收藏這篇文章到HEMiDEMi

迴響

目前沒有人留言.

我要留言!

伍 加 貳拾 等於