From 07f5140771388c9e0c8a99b0dd2e5d950bdb173b Mon Sep 17 00:00:00 2001 From: Yuchen Pei Date: Thu, 14 Oct 2021 15:16:42 +1100 Subject: moving h-source subdir out. --- h-source/Library/Email.php | 246 --------------------------------------------- 1 file changed, 246 deletions(-) delete mode 100644 h-source/Library/Email.php (limited to 'h-source/Library/Email.php') diff --git a/h-source/Library/Email.php b/h-source/Library/Email.php deleted file mode 100644 index 9d2ff19..0000000 --- a/h-source/Library/Email.php +++ /dev/null @@ -1,246 +0,0 @@ -. - -if (!defined('EG')) die('Direct access not allowed!'); - -//class to send an e-mail -class Email { - - //sent to parameters (array) - private $_sendTo = array(); - - //cc parameters (array) - private $_cc = array(); - - //bcc parameters (array) - private $_bcc = array(); - - //the address of the sender - private $_from = null; - - //subject (string) - private $_subject = null; - - //charset - private $_charset = "iso-8859-1"; - - //Content-Transfer-Encoding - private $_ctencoding = "7bit"; - - //body - private $_body = ''; - - //headers - private $_headers = null; - - //check flag. If _check = true than check the mail addresses - private $_check = null; - - //regular expression to check each e-mail address - private $_addressRegExp = null; - - //array containing all the errors encountered during the execution - public $errorsArray = array(); - - public function __construct($bool = true) - { - $this->_check = $bool; - } - - //set the sentTo addresses array - //$addresses: array of e-mail addresses or a string - public function sendTo($addresses) - { - $this->_sendTo = explode(',',$addresses); - } - - //set the subject - public function subject($subject) - { - $this->_subject = $subject; - } - - //set the cc addresses array - //$addresses: array of e-mail addresses or a string - public function cc($addresses) - { - $this->_cc = explode(',',$addresses); - } - - //set the bcc addresses array - //$addresses: array of e-mail addresses or a string - public function bcc($addresses) - { - $this->_bcc = explode(',',$addresses); - } - - //set the address of the sender - public function from($address) - { - $this->_from = $address; - } - - //set the charset - public function charset($charset) - { - $this->_charset = $charset; - } - - //set the Content-Transfer-Encoding - public function ctencoding($ctencoding) - { - $this->_ctencoding = $ctencoding; - } - - //set the text body - public function body($body) - { - $this->_body = $body; - } - - //set the address regular expression - public function addressRegExp($regExp) - { - $this->_addressRegExp = $regExp; - } - - //check if the mail address is valid - public function isValidAddress($address) - { - - if( preg_match( '/^[^<>]*<(.+)>$/', $address, $matches ) ) - { - $address = $matches[1]; - } - - if (isset($this->_addressRegExp)) - { - if (preg_match($this->_addressRegExp,$address)) - { - return true; - } - else - { - return false; - } - } - else - { - if (checkMail($address)) return true; - } - - return false; - - } - - //check the addresses inside the $addresses array - public function checkAddresses($addresses) - { - foreach ($addresses as $address) - { - if(!$this->isValidAddress($address)) return false; - } - return true; - } - - //build the mail - public function buildMail() - { - - if (empty($this->_sendTo)) - { - $this->errorsArray[] = 'no address specified'; - return false; - } - - if ($this->_check) - { - if (!$this->checkAddresses($this->_sendTo)) - { - $this->errorsArray[] = 'errors in the sendTo address validation'; - return false; - } - - if (!empty($this->_cc)) - { - if (!$this->checkAddresses($this->_cc)) - { - $this->errorsArray[] = 'errors in the cc address validation'; - return false; - } - } - - if (!empty($this->_bcc)) - { - if (!$this->checkAddresses($this->_bcc)) - { - $this->errorsArray[] = 'errors in the bcc address validation'; - return false; - } - } - - if (isset($this->_from)) - { - if (!$this->checkAddresses(array($this->_from))) - { - $this->errorsArray[] = 'errors in the from address validation'; - return false; - } - } - } - - if (strcmp($this->_subject,'') === 0) - { - $this->errorsArray[] = 'no subject specified'; - return false; - } - - $headers = null; - if (isset($this->_from)) $headers .= "From: ".$this->_from."\r\n"; - $headers .= "MIME-Version: 1.0\r\n"; - $headers .= "Content-Type: text/plain; charset=\"".$this->_charset."\"\r\n"; - $headers .= "Content-Transfer-Encoding: ".$this->_ctencoding."\r\n"; - if (!empty($this->_cc)) $headers .= "CC: ".implode(',',$this->_cc)."\r\n"; - if (!empty($this->_bcc)) $headers .= "Bcc: ".implode(',',$this->_bcc)."\r\n"; - - $this->_headers = $headers; - - return true; - - } - - public function send() - { - if (!$this->buildMail()) return false; - - $to = implode(',',$this->_sendTo); - - if (!@mail($to,$this->_subject,$this->_body,$this->_headers)) - { - $this->errorsArray[] = 'error in the send process'; - return false; - } - - return true; - } - -} \ No newline at end of file -- cgit v1.2.3