work/extend/sms/submail/lib/mailxsend.php

166 lines
4.5 KiB
PHP
Raw Normal View History

2019-01-17 11:05:47 +08:00
<?PHP
class MAILXsend{
protected $configs;
protected $To=array();
protected $Addressbook=array();
protected $From='';
protected $From_name='';
protected $Reply='';
protected $Cc=array();
protected $Bcc=array();
protected $Subject='';
protected $Project='';
protected $Vars=array();
protected $Links=array();
protected $Headers=array();
protected $asynchronous="false";
function __construct($configs){
$this->configs=$configs;
}
public function AddTo($address,$name=''){
array_push($this->To,array('address'=>$address,'name'=>$name));
}
public function AddAddressbook($addressbook){
array_push($this->Addressbook,$addressbook);
}
public function SetSender($sender,$name=''){
$this->From=$sender;
$this->From_name=$name;
}
public function SetReply($reply){
$this->Reply=$reply;
}
public function AddCc($address,$name=''){
array_push($this->Cc,array('address'=>$address,'name'=>$name));
}
public function AddBcc($address,$name=''){
array_push($this->Bcc,array('address'=>$address,'name'=>$name));
}
public function SetSubject($subject){
$this->Subject=$subject;
}
public function SetProject($project){
$this->Project=$project;
}
public function AddVar($key,$val){
$this->Vars[$key]=$val;
}
public function AddLink($key,$val){
$this->Links[$key]=$val;
}
public function AddHeaders($key,$val){
$this->Headers[$key]=$val;
}
public function setAsynchronous($asynchronous){
if($asynchronous==true){
$this->asynchronous="true";
}else{
$this->asynchronous="false";
}
}
protected function buildRequest(){
$request=array();
if(!empty($this->To)){
$request['to']='';
foreach($this->To as $tmp){
$request['to'].=$tmp['name'].'<'.$tmp['address'].'>,';
}
$request['to'] = substr($request['to'],0,count($request['to'])-2);
}
if(!empty($this->Addressbook)){
$request['addressbook']='';
foreach($this->Addressbook as $tmp){
$request['addressbook'].=$tmp.',';
}
$request['addressbook'] = substr($request['addressbook'],0,count($request['addressbook'])-2);
}
if($this->From!=''){
$request['from']=$this->From;
}
if($this->From_name!=''){
$request['from_name']=$this->From_name;
}
if($this->Reply!=''){
$request['reply']=$this->Reply;
}
if(!empty($this->Cc)){
$request['cc']='';
foreach($this->Cc as $tmp){
$request['cc'].=$tmp['name'].'<'.$tmp['address'].'>,';
}
$request['cc'] = substr($request['cc'],0,count($request['cc'])-2);
}
if(!empty($this->Bcc)){
$request['bcc']='';
foreach($this->Bcc as $tmp){
$request['bcc'].=$tmp['name'].'<'.$tmp['address'].'>,';
}
$request['bcc'] = substr($request['bcc'],0,count($request['bcc'])-2);
}
if($this->Subject!=''){
$request['subject']=$this->Subject;
}
$request['project']=$this->Project;
if(!empty($this->Vars)){
$request['vars']=json_encode($this->Vars);
}
if(!empty($this->Links)){
$request['links']=json_encode($this->Links);
}
if(!empty($this->asynchronous)){
$request['asynchronous']= $this->asynchronous;
}
if(!empty($this->Headers)){
$request['headers']=json_encode($this->Headers);
}
return $request;
}
public function xsend(){
$mail=new mail($this->configs);
return $mail->xsend($this->buildRequest());
}
}