<?php
namespace imcat;
// $m = new extEmail();
// $s = 'v01-Mail:'.$_cbase['mail']['type'].' : 邮件 : '.date('Y-m-d H:i');
// $c = comFiles::get('./mail_demo.htm');
// $m->send('xpigeon@163.com',$s,$c,'fromName-测试-Test');
class extEmail{
public $type = ''; //phpmailer,swiftmailer
public $cfg = array(); //
public $umail = null;
public $log = array();
function __construct($type='', $cfg=array()){
$this->cfg = empty($cfg) ? glbConfig::read('mail','ex') : $cfg;
$this->type = empty($type) ? $this->cfg['type'] : $type;
$this->setServer($cfg);
}
function setServer($cfg=array()){
$cfile = 'eml'.ucfirst($this->type);
$fp = DIR_IMCAT."/adpt/email/$cfile.php";
if(file_exists($fp)){
require $fp; // 加载
$class = "\\imcat\\$cfile";
$this->umail = new $class($this->cfg);
}
}
function send($to, $title, $body, $vname=''){
$res = $this->umail->send($to, $title, $body, $vname);
$from = $this->cfg['from'];
$alog = array('to', 'title', 'body', 'from', 'vname');
foreach ($alog as $key) {
$this->log[$key] = $$key;
}
return $res;
}
// 写记录
function slog($stat=1, $cfgs=array()){
$body = $this->log['body'];
$body = strstr($body,'<body') ? basElm::getPos($body,'body') : $body;
$body = trim(strip_tags($body));
$kid = empty($cfgs['kid'])?basKeyid::kidTemp():$cfgs['kid'];
$pid = empty($cfgs['pid'])?'':$cfgs['pid'];
$data = array(
'kid'=>$kid,'pid'=>$pid,
'ufrom'=>$this->log['from'],'uto'=>$this->log['to'],
'title'=>$this->log['title'],'detail'=>basReq::in($body),
'stat'=>$stat,'api'=>$this->type,
);
glbDBObj::dbObj()->table('plus_emsend')->data($data)->insert();
}
static function hasClass($class){
//$class = '\PHPMailer\PHPMailer\PHPMailer';
if(!class_exists($class)){
$msg = "Class `$class` not found,<br>
Please install it with composer, more info see:<br>
http://custom.txjia.com/book.php/deeps-no3rd";
die($msg);
}
}
}