summaryrefslogtreecommitdiff
path: root/Postman
diff options
context:
space:
mode:
Diffstat (limited to 'Postman')
-rw-r--r--Postman/Phpmailer/PostsmtpMailer.php221
1 files changed, 108 insertions, 113 deletions
diff --git a/Postman/Phpmailer/PostsmtpMailer.php b/Postman/Phpmailer/PostsmtpMailer.php
index 91f5122..b8227d5 100644
--- a/Postman/Phpmailer/PostsmtpMailer.php
+++ b/Postman/Phpmailer/PostsmtpMailer.php
@@ -1,159 +1,154 @@
<?php
if ( ! defined( 'ABSPATH' ) ) {
- exit; // Exit if accessed directly
+ exit; // Exit if accessed directly
}
if ( ! class_exists( 'PHPMailer', false ) ) {
- require_once ABSPATH . WPINC . '/PHPMailer/PHPMailer.php';
- require_once ABSPATH . WPINC . '/PHPMailer/SMTP.php';
- require_once ABSPATH . WPINC . '/PHPMailer/Exception.php';
+ require_once ABSPATH . WPINC . '/class-phpmailer.php';
}
-use PHPMailer\PHPMailer\PHPMailer;
-use PHPMailer\PHPMailer\Exception;
-
add_action('plugins_loaded', function() {
- global $phpmailer;
+ global $phpmailer;
- $phpmailer = new PostsmtpMailer(true);
+ $phpmailer = new PostsmtpMailer(true);
});
class PostsmtpMailer extends PHPMailer {
- private $mail_args = array();
+ private $mail_args = array();
- private $options;
+ private $options;
- private $error;
+ private $error;
- private $transcript = '';
+ private $transcript = '';
- public function __construct($exceptions = null)
- {
- parent::__construct($exceptions);
+ public function __construct($exceptions = null)
+ {
+ parent::__construct($exceptions);
- $this->set_vars();
- $this->hooks();
+ $this->set_vars();
+ $this->hooks();
- }
+ }
- public function set_vars() {
- $this->options = PostmanOptions::getInstance();
- $this->Debugoutput = function($str, $level) {
- $this->transcript .= $str;
- };
- }
+ public function set_vars() {
+ $this->options = PostmanOptions::getInstance();
+ $this->Debugoutput = function($str, $level) {
+ $this->transcript .= $str;
+ };
+ }
- public function hooks() {
- add_filter( 'wp_mail', array( $this, 'get_mail_args' ) );
- if ( $this->options->getTransportType() == 'smtp' ) {
- add_action( 'phpmailer_init', array( $this, 'phpmailer_smtp_init' ), 999 );
- }
- }
+ public function hooks() {
+ add_filter( 'wp_mail', array( $this, 'get_mail_args' ) );
+ if ( $this->options->getTransportType() == 'smtp' ) {
+ add_action( 'phpmailer_init', array( $this, 'phpmailer_smtp_init' ), 999 );
+ }
+ }
- public function get_mail_args( $atts ) {
- $this->mail_args = array();
- $this->mail_args[] = $atts['to'];
- $this->mail_args[] = $atts['subject'];
- $this->mail_args[] = $atts['message'];
- $this->mail_args[] = $atts['headers'];
- $this->mail_args[] = $atts['attachments'];
+ public function get_mail_args( $atts ) {
+ $this->mail_args = array();
+ $this->mail_args[] = $atts['to'];
+ $this->mail_args[] = $atts['subject'];
+ $this->mail_args[] = $atts['message'];
+ $this->mail_args[] = $atts['headers'];
+ $this->mail_args[] = $atts['attachments'];
- return $atts;
- }
+ return $atts;
+ }
- /**
- * @param PHPMailer $mail
- */
- public function phpmailer_smtp_init($mail) {
- $mail->SMTPDebug = 3;
- $mail->isSMTP();
- $mail->Host = $this->options->getHostname();
+ /**
+ * @param PHPMailer $mail
+ */
+ public function phpmailer_smtp_init($mail) {
+ $mail->SMTPDebug = 3;
+ $mail->isSMTP();
+ $mail->Host = $this->options->getHostname();
- if ( $this->options->getAuthenticationType() !== 'none' ) {
- $mail->SMTPAuth = true;
- $mail->Username = $this->options->getUsername();
- $mail->Password = $this->options->getPassword();
- }
+ if ( $this->options->getAuthenticationType() !== 'none' ) {
+ $mail->SMTPAuth = true;
+ $mail->Username = $this->options->getUsername();
+ $mail->Password = $this->options->getPassword();
+ }
- if ( $this->options->getEncryptionType() !== 'none' ) {
- $mail->SMTPSecure = $this->options->getEncryptionType();
- }
+ if ( $this->options->getEncryptionType() !== 'none' ) {
+ $mail->SMTPSecure = $this->options->getEncryptionType();
+ }
- $mail->Port = $this->options->getPort();
+ $mail->Port = $this->options->getPort();
- if ( $this->options->isPluginSenderEmailEnforced() ) {
- $mail->setFrom( $this->options->getMessageSenderEmail() , $this->options->getMessageSenderName () );
- }
- }
+ if ( $this->options->isPluginSenderEmailEnforced() ) {
+ $mail->setFrom( $this->options->getMessageSenderEmail() , $this->options->getMessageSenderName () );
+ }
+ }
- public function send()
- {
- require_once dirname(__DIR__) . '/PostmanWpMail.php';
+ public function send()
+ {
+ require_once dirname(__DIR__) . '/PostmanWpMail.php';
- // create a PostmanWpMail instance
- $postmanWpMail = new PostmanWpMail();
- $postmanWpMail->init();
+ // create a PostmanWpMail instance
+ $postmanWpMail = new PostmanWpMail();
+ $postmanWpMail->init();
- list($to, $subject, $body, $headers, $attachments) = array_pad( $this->mail_args, 5, null );
+ list($to, $subject, $body, $headers, $attachments) = array_pad( $this->mail_args, 5, null );
- // build the message
- $postmanMessage = $postmanWpMail->processWpMailCall( $to, $subject, $body, $headers, $attachments );
+ // build the message
+ $postmanMessage = $postmanWpMail->processWpMailCall( $to, $subject, $body, $headers, $attachments );
- // build the email log entry
- $log = new PostmanEmailLog();
- $log->originalTo = $to;
- $log->originalSubject = $subject;
- $log->originalMessage = $body;
- $log->originalHeaders = $headers;
+ // build the email log entry
+ $log = new PostmanEmailLog();
+ $log->originalTo = $to;
+ $log->originalSubject = $subject;
+ $log->originalMessage = $body;
+ $log->originalHeaders = $headers;
- // get the transport and create the transportConfig and engine
- $transport = PostmanTransportRegistry::getInstance()->getActiveTransport();
+ // get the transport and create the transportConfig and engine
+ $transport = PostmanTransportRegistry::getInstance()->getActiveTransport();
- add_filter( 'postman_wp_mail_result', [ $this, 'postman_wp_mail_result' ] );
+ add_filter( 'postman_wp_mail_result', [ $this, 'postman_wp_mail_result' ] );
- try {
+ try {
- if ( $send_email = apply_filters( 'post_smtp_do_send_email', true ) ) {
- $result = $this->options->getTransportType() !== 'smtp' ?
- $postmanWpMail->send( $to, $subject, $body, $headers, $attachments ) :
- $this->sendSmtp();
- }
+ if ( $send_email = apply_filters( 'post_smtp_do_send_email', true ) ) {
+ $result = $this->options->getTransportType() !== 'smtp' ?
+ $postmanWpMail->send( $to, $subject, $body, $headers, $attachments ) :
+ $this->sendSmtp();
+ }
- do_action( 'post_smtp_on_success', $log, $postmanMessage, $this->transcript, $transport );
+ do_action( 'post_smtp_on_success', $log, $postmanMessage, $this->transcript, $transport );
- return $result;
+ return $result;
- } catch (Exception $exc) {
+ } catch (phpmailerException $exc) {
- $this->error = $exc;
-
- $this->mailHeader = '';
+ $this->error = $exc;
+
+ $this->mailHeader = '';
- $this->setError($exc->getMessage());
- if ($this->exceptions) {
- throw $exc;
- }
- return false;
- }
-
- }
-
- public function sendSmtp() {
- if (!$this->preSend()) {
- return false;
- }
- return $this->postSend();
- }
+ $this->setError($exc->getMessage());
+ if ($this->exceptions) {
+ throw $exc;
+ }
+ return false;
+ }
+
+ }
+
+ public function sendSmtp() {
+ if (!$this->preSend()) {
+ return false;
+ }
+ return $this->postSend();
+ }
- public function postman_wp_mail_result() {
- $result = [
- 'time' => '',
- 'exception' => $this->error,
- 'transcript' => $this->transcript,
- ];
- return $result;
- }
+ public function postman_wp_mail_result() {
+ $result = [
+ 'time' => '',
+ 'exception' => $this->error,
+ 'transcript' => $this->transcript,
+ ];
+ return $result;
+ }
} \ No newline at end of file