diff options
author | Yuchen Pei <hi@ypei.me> | 2021-10-14 15:16:42 +1100 |
---|---|---|
committer | Yuchen Pei <hi@ypei.me> | 2021-10-14 15:16:42 +1100 |
commit | 07f5140771388c9e0c8a99b0dd2e5d950bdb173b (patch) | |
tree | 323c00faef1edc7dea2e88ff581cc2258b2b6432 /h-source/Library/Email.php | |
parent | e119be145500700f3c465e12664403a07530a421 (diff) |
moving h-source subdir out.
Diffstat (limited to 'h-source/Library/Email.php')
-rw-r--r-- | h-source/Library/Email.php | 246 |
1 files changed, 0 insertions, 246 deletions
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 @@ -<?php - -// EasyGiant is a PHP framework for creating and managing dynamic content -// -// Copyright (C) 2009 - 2011 Antonio Gallo -// See COPYRIGHT.txt and LICENSE.txt. -// -// This file is part of EasyGiant -// -// EasyGiant is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// EasyGiant is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with EasyGiant. If not, see <http://www.gnu.org/licenses/>. - -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 |