<?php
class mail {
public function __construct(){
}
public static function sendTemplateMail($rcpt,$type,$data,$from=NULL,$output=false,$isSMTP=true){
global $db;//定义数据库连接
if($type == "") return false;
$row = $db->query_data("select * from ai_email_model where email_model_type='".$type."' and email_model_status=1");
if($row){
$data["site_link"] = "<a href=\"http://".$_SERVER["HTTP_HOST"]."/\" target=_blank>".$_SERVER["HTTP_HOST"]."</a>";
$data["site"] = $_SERVER["HTTP_HOST"];
$data["site_email"] = SITE_EMAIL;
$data["site_email_link"] = "<a href=\"mailto:".SITE_EMAIL."\" target=_blank>".SITE_EMAIL."</a>";
$subject = self::CompileTemplate($row[0]["email_model_title"], $data);
$subject = "=?UTF-8?B?".base64_encode($subject)."?=";
$body = self::CompileTemplate($row[0]["email_model_content"], $data);
if($output){
return $body;
}
if($isSMTP){
return self::SendSMTP($rcpt,$subject, $body);
}else{
return self::Send($rcpt,$subject, $body);
}
}else{
return false;
}
}
public static function test_email($email){
$mailer = new PHPMailer();
$mailer->isSMTP();
$mailer->isHTML();
try{
$mailer->Subject = "hello";
$mailer->Body = "yes,it's here!";
$mailer->AddAddress($email);
if(!$mailer->preSend()){
return false;
}else{
return true;
}
}catch (Exception $e){
return false;
}
}
public static function Send($rcpt,$subject, $body,$is_bcc=null)
{
$mailer = new PHPMailer;
$mailer->IsSendmail();
$mailer->IsHTML();
try {
$mailer->Subject = $subject;
$mailer->Body = $body;
foreach ((array)$rcpt as $r) $mailer->AddAddress($r);
$mailer->Send();
} catch (Exception $e) {
err_log("mail_error: to:<".$rcpt.">,subject:".$subject.",Error:".$e->getMessage());
return FALSE;
}
return TRUE;
}
public static function SendSMTP($rcpt,$subject, $body,$is_bcc=null)
{
$mailer = new PHPMailer;
$mailer->IsSMTP();
$mailer->IsHTML();
try {
$mailer->Subject = $subject;
$mailer->Body = $body;
foreach ((array)$rcpt as $r) $mailer->AddAddress($r);
$mailer->Send();
} catch (Exception $e) {
err_log("mail_error: to:<".$rcpt.">,subject:".$subject.",Error:".$e->getMessage());
return FALSE;
}
return TRUE;
}
protected static function CompileTemplate($template, $context)
{
$keys = array();
foreach (array_keys($context) as $key)
$keys[] = '{'.$key.'}';
return str_replace($keys, array_values($context), $template);
}
}