Files
xinhu/include/chajian/mailerChajian.php
2022-08-14 16:47:40 +08:00

115 lines
2.9 KiB
PHP

<?php
/**
PHPMailer 读取插件类
*/
include_once(ROOT_PATH.'/include/PHPMailer/class.phpmailer.php');
include_once(ROOT_PATH.'/include/PHPMailer/class.smtp.php');
class mailerChajian extends Chajian{
private $mail;
private $mailbool;
public function initChajian(){
$this->mail = new PHPMailer();
$this->mail->IsSMTP();
$this->mail->SMTPAuth = true;
$this->mail->SMTPDebug = 0;
$this->mail->CharSet = 'UTF-8';
$this->mailbool = false;
}
public function setHost($host, $port=25, $secure=''){
$this->mail->Host = $host;
$this->mail->SMTPSecure = $secure;
$this->mail->Port = (int)$port;
}
public function setUser($email, $pass){
$this->mail->Username = $email;
$this->mail->Password = $pass;
$this->setFrom($email);
$this->addReplyTo($email);
}
//发件人邮箱地址
public function setFrom($from, $name=''){
$this->mail->SetFrom($from, $this->tojoin($name));
}
//设置回复
public function addReplyTo($address, $name=''){
$this->mail->AddReplyTo($address, $this->tojoin($name));
}
//添加抄送
public function addCC($address, $name=''){
$a1 = explode(',', $address);
$n1 = array();
if($name != '')$n1 = explode(',', $name);
for($i=0; $i<count($a1); $i++){
$na = '';
if(isset($n1[$i]))$na = $n1[$i];
$this->mail->AddCC($a1[$i], $this->tojoin($na));
}
}
//添加秘密送
public function addBCC($address, $name=''){
$a1 = explode(',', $address);
$n1 = array();
if($name != '')$n1 = explode(',', $name);
for($i=0; $i<count($a1); $i++){
$na = '';
if(isset($n1[$i]))$na = $n1[$i];
$this->mail->AddBCC($a1[$i], $this->tojoin($na));
}
}
//添加收件人
public function addAddress($address, $name=''){
$a1 = explode(',', $address);
$n1 = array();
if($name != '')$n1 = explode(',', $name);
for($i=0; $i<count($a1); $i++){
$na = '';
if(isset($n1[$i]))$na = $n1[$i];
$this->mail->AddAddress($a1[$i], $this->tojoin($na));
}
}
//添加附件
public function addAttachment($address, $name=''){
if($this->rock->isempt($address))return;
$a1 = explode(',', $address);
$n1 = array();
if($name != '')$n1 = explode(',', $name);
for($i=0; $i<count($a1); $i++){
$na = '';
if(isset($n1[$i]))$na = $n1[$i];
$this->mail->AddAttachment(ROOT_PATH.'/'.$a1[$i], $this->tojoin($na));
}
}
//发送邮件
public function sendMail($Subject, $body=''){
$this->mail->Subject = $this->tojoin($Subject);
$this->mail->Body = $body;
$this->mail->IsHTML(true);
$this->mailbool = $this->mail->Send();
}
public function isSuccess(){
return $this->mailbool;
}
public function getErrror(){
return $this->mail->ErrorInfo;
}
private function tojoin($name='')
{
if($name=='')return '';
return "=?UTF-8?B?".base64_encode($name)."?=";
}
}