_config = $config; } /** * Sets the cache expiration limit (IMPORTANT NOTE: seconds, NOT ms!). * * @param string $to, string $title, string $text, string $accname * @access public * @return boolean **/ public function sendMail($to, $title, $text, $accname = '') { //SMTP needs accurate times, and the PHP time zone MUST be set //This should be done in your php.ini, but this is how to do it if you don't have access to that //date_default_timezone_set('Etc/UTC'); require __DIR__.'/../../PHPMailer/src/Exception.php'; require __DIR__.'/../../PHPMailer/src/PHPMailer.php'; require __DIR__.'/../../PHPMailer/src/SMTP.php'; //Create a new PHPMailer instance $mail = new PHPMailer(); //Tell PHPMailer to use SMTP $mail->isSMTP(); //Enable SMTP debugging // 0 = off (for production use) // 1 = client messages // 2 = client and server messages $mail->SMTPDebug = ($this->_config['debug']) ? 2 : 0; //Ask for HTML-friendly debug output $mail->Debugoutput = 'html'; //Set the hostname of the mail server $mail->Host = $this->_config['host']; //Set the SMTP port number - likely to be 25, 465 or 587 $mail->Port = $this->_config['port']; //Whether to use SMTP authentication $mail->SMTPAuth = true; $mail->SMTPSecure = $this->_config['securityType']; //Username to use for SMTP authentication $mail->Username = $this->_config['username']; //Password to use for SMTP authentication $mail->Password = $this->_config['password']; //Set who the message is to be sent from $mail->setFrom($this->_config['email'], $this->_config['fromName']); //Set who the message is to be sent to $mail->addAddress($to, $accname); //Set the subject line $mail->Subject = $title; // Body $mail->Body = $text; // Convert HTML -> plain for legacy mail recievers // Create new lines instead of
html tags. $text = str_replace("
", "\n", $text); $text = str_replace("", "\n", $text); $text = str_replace("
", "\n", $text); // Then get rid of the rest of the html tags. $text = strip_tags($text); //Replace the plain text body with one created manually $mail->AltBody = $text; //send the message, check for errors $status = false; if (!$mail->send()) { echo "Mailer Error: " . $mail->ErrorInfo; exit(); } else { $status = true; } return $status; } }