![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/www/wp-content/plugins/post-smtp/Postman/Postman-Mail/ |
<?php if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } define( 'MAILSTER_POSTMAN_REQUIRED_VERSION', '2.0' ); define( 'MAILSTER_POSTMAN_ID', 'postman' ); /** * Enables Mailster to deliver via Postman * * @author jasonhendriks */ if ( ! class_exists( 'PostmanMyMailConnector' ) ) { class PostmanMyMailConnector { // PostmanLogger private $logger; /** * No-argument constructor */ public function __construct( $file ) { register_activation_hook( $file, array( $this, 'activate', ) ); register_deactivation_hook( $file, array( $this, 'deactivate', ) ); add_action( 'init', array( $this, 'init', ), 1 ); } /** * Initialize the Connector */ public function init() { if ( ! defined( 'MAILSTER_VERSION' ) || version_compare( MAILSTER_POSTMAN_REQUIRED_VERSION, MAILSTER_VERSION, '>' ) ) { // no-op } else { // create an instance of the Logger $this->logger = new PostmanLogger( get_class( $this ) ); $this->logger->debug( 'Starting' ); add_filter( 'mailster_delivery_methods', array( &$this, 'delivery_method', ) ); add_action( 'mailster_deliverymethod_tab_postman', array( &$this, 'deliverytab', ) ); if ( mailster_option( 'deliverymethod' ) == MAILSTER_POSTMAN_ID ) { add_action( 'mailster_initsend', array( &$this, 'initsend', ) ); add_action( 'mailster_presend', array( &$this, 'presend', ) ); add_action( 'mailster_dosend', array( &$this, 'dosend', ) ); add_action( 'MAILSTER_POSTMAN_cron', array( &$this, 'reset', ) ); } } } /** * initsend function. * * uses mailster_initsend hook to set initial settings * * @access public * @param mixed $mailobject * @return void */ public function initsend( $mailobject ) { $this->logger->trace( 'initsend' ); // disable dkim $mailobject->dkim = false; } /** * presend function. * * uses the mailster_presend hook to apply setttings before each mail * * @access public * @param mixed $mailobject * @return void */ public function presend( $mailobject ) { // embedding images doesn't work $mailobject->embed_images = false; // use pre_send from the main class // need the raw email body to send so we use the same option $mailobject->pre_send(); } /** * dosend function. * * uses the mailster_dosend hook and triggers the send * * @access public * @param mixed $mailobject * @return void */ public function dosend( $mailobject ) { $this->logger->trace( 'dosend' ); $this->logger->trace( $mailobject->mailer ); // create a PostmanWpMail instance $postmanWpMail = new PostmanWpMail(); $postmanWpMail->init(); // create a PostmanMessage instance $message = $postmanWpMail->createNewMessage(); $message->addHeaders( $mailobject->headers ); $message->setBodyTextPart( $mailobject->mailer->AltBody ); $message->setBodyHtmlPart( $mailobject->mailer->Body ); $message->setBody( $mailobject->mailer->AltBody . $mailobject->mailer->Body ); $message->setSubject( $mailobject->subject ); $message->addTo( $mailobject->to ); $message->setReplyTo( $mailobject->reply_to ); $message->setAttachments( $mailobject->attachments ); // create a PostmanEmailLog instance $log = new PostmanEmailLog(); // send the message and store the result $mailobject->sent = $postmanWpMail->sendMessage( $message, $log ); // give error message back to MyMail $result = apply_filters( 'postman_wp_mail_result', null ); if ( ! $mailobject->sent ) { $mailobject->set_error( $result ['exception']->getMessage() ); } } /** * reset function. * * resets the current time * * @access public * @param mixed $message */ public function reset() { update_option( '_transient__mailster_send_period_timeout', false ); update_option( '_transient__mailster_send_period', 0 ); } /** * delivery_method function. * * add the delivery method to the options * * @access public * @param mixed $delivery_methods * @return mixed */ public function delivery_method( $delivery_methods ) { $delivery_methods [ MAILSTER_POSTMAN_ID ] = __( 'Postman SMTP', 'post-smtp' ); return $delivery_methods; } /** * deliverytab function. * * the content of the tab for the options * * @access public * @return void */ public function deliverytab() { apply_filters( 'print_postman_status', null ); } /** * activate function. * * @access public * @return void */ public function activate() { if ( defined( 'MAILSTER_VERSION' ) && version_compare( MAILSTER_POSTMAN_REQUIRED_VERSION, MAILSTER_VERSION, '<=' ) ) { mailster_notice( sprintf( __( 'Mailster: Change the delivery method in the %s!', 'post-smtp' ), sprintf( '<a href="edit.php?post_type=newsletter&page=mailster_settings&mailster_remove_notice=mailster_delivery_method#delivery">%s</a>', __( 'Settings', 'postman-smtp' ) ) ), '', false, 'delivery_method' ); $this->reset(); } } /** * deactivate function. * * @access public * @return void */ public function deactivate() { if ( defined( 'MAILSTER_VERSION' ) && function_exists( 'mailster_option' ) && version_compare( MAILSTER_POSTMAN_REQUIRED_VERSION, MAILSTER_VERSION, '<=' ) ) { if ( mailster_option( 'deliverymethod' ) == MAILSTER_POSTMAN_ID ) { mailster_update_option( 'deliverymethod', 'simple' ); /* Translators where %s is the name of the page */ mailster_notice( sprintf( __( 'Mailster: Change the delivery method in the %s!', 'post-smtp' ), sprintf( '<a href="edit.php?post_type=newsletter&page=mailster_settings&mailster_remove_notice=mailster_delivery_method#delivery">%s</a>', __( 'Settings', 'postman-smtp' ) ) ), '', false, 'delivery_method' ); } } } } }