[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@3.131.37.236: ~ $
<?php
/*
* GoSMTP
* https://gosmtp.net
* (c) Softaculous Team
*/

// We need the ABSPATH
if (!defined('ABSPATH')) exit;

define('GOSMTP_BASE', plugin_basename(GOSMTP_FILE));
define('GOSMTP_VERSION', '1.1.1');
define('GOSMTP_DIR', dirname(GOSMTP_FILE));
define('GOSMTP_SLUG', 'gosmtp');
define('GOSMTP_URL', plugins_url('', GOSMTP_FILE));
define('GOSMTP_CSS', GOSMTP_URL.'/css');
define('GOSMTP_JS', GOSMTP_URL.'/js');
define('GOSMTP_PRO_URL', 'https://gosmtp.net/pricing?from=plugin');
define('GOSMTP_WWW_URL', 'https://gosmtp.net/');
define('GOSMTP_DOCS', 'https://gosmtp.net/docs/');
define('GOSMTP_DB_PREFIX', 'gosmtp_');

include_once(GOSMTP_DIR.'/main/functions.php');

spl_autoload_register('gosmtp_autoload_register');
function gosmtp_autoload_register($class){

	if(!preg_match('/GOSMTP\\\\/', $class)){
		return;
	}
	
	$file = strtolower(str_replace( array('GOSMTP', '\\'), array('', DIRECTORY_SEPARATOR), $class)); 
	$file = trim(strtolower($file), '/').'.php';

	// For Free
	if(file_exists(GOSMTP_DIR.'/main/'.$file)){
		include_once(GOSMTP_DIR.'/main/'.$file);
	}

	// For Pro
	if(defined('GOSMTP_PRO_DIR') && file_exists(GOSMTP_PRO_DIR.'/main/'.$file)){
		include_once(GOSMTP_PRO_DIR.'/main/'.$file);
	}
	
}

function gosmtp_died(){
	print_r(error_get_last());
}
//register_shutdown_function('gosmtp_died');

// Ok so we are now ready to go
register_activation_hook(GOSMTP_FILE, 'gosmtp_activation');

// Is called when the ADMIN enables the plugin
function gosmtp_activation(){
	global $wpdb;

	add_option('gosmtp_version', GOSMTP_VERSION);

}

// Checks if we are to update ?
function gosmtp_update_check(){
	global $wpdb;

	$current_version = get_option('gosmtp_version');
	$version = (int) str_replace('.', '', $current_version);

	// No update required
	if($current_version == GOSMTP_VERSION){
		return true;
	}

	// Is it first run ?
	if(empty($current_version)){

		// Reinstall
		gosmtp_activation();

		// Trick the following if conditions to not run
		$version = (int) str_replace('.', '', GOSMTP_VERSION);

	}

	// Save the new Version
	update_option('gosmtp_version', GOSMTP_VERSION);
	
}

// Add action to load GoSMTP
add_action('plugins_loaded', 'gosmtp_load_plugin');
function gosmtp_load_plugin(){
	global $gosmtp;
	
	if(empty($gosmtp)){
		$gosmtp = new stdClass();
	}
	
	// Check if the installed version is outdated
	gosmtp_update_check();
	
	$options = get_option('gosmtp_options', array());
	$gosmtp->options = empty($options) ? array() : $options;
}

// The function that will be called when the plugin is loaded
add_action('wp_mail', 'gosmtp_load_phpmailer');
function gosmtp_load_phpmailer($atts){
	global $gosmtp, $phpmailer;
	
	if(!class_exists('GOSMTP_PHPMailer')){
		// Load PHPMailer class, so we can subclass it.
		require_once ABSPATH . WPINC . '/PHPMailer/PHPMailer.php';
		require_once ABSPATH . WPINC . '/PHPMailer/SMTP.php';
		require_once ABSPATH . WPINC . '/PHPMailer/Exception.php';
		
		class GOSMTP_PHPMailer extends \PHPMailer\PHPMailer\PHPMailer {

			// Modify the default send() behaviour of PHPMailer.
			public function send(){
				
				global $gosmtp, $phpmailer;
				
				// Define a custom header, that will be used to identify the plugin and the mailer.
				$this->XMailer = 'GOSMTP/Mailer/' . $gosmtp->_mailer . ' ' . GOSMTP_VERSION;
				
				do_action( 'gosmtp_mailer_mail_pre_send' );
				
				// If mailer not exists or send function not exists
				if(!method_exists($gosmtp->mailer, 'send')){
					return parent::send();
				}
				
				do_action( 'gosmtp_mailer_mail_send_before' );
			
				// Are we to enforce from ?
				$gosmtp->mailer->set_from();
				
				$exception = false;
				
				/*
				 * Send the actual email.
				 * We reuse everything, that was preprocessed for usage in \PHPMailer.
				 */
				try{
					$is_sent = $gosmtp->mailer->send();
				}catch(PHPMailer\PHPMailer\Exception $e){
					$is_sent = false;
					$exception = $e;
				}
				
				// Get backup connection
				$backup_connection = $gosmtp->mailer->get_backup_connection();
				$backup_sent = false;
				
				// Store current values
				$current_data = array(
					'_mailer' => $gosmtp->_mailer,
					'mailer' => $gosmtp->mailer,
					'conn_id' => $gosmtp->mailer->conn_id
				);
				
				// Try to send email with secondary email
				if(empty($is_sent) && !empty($backup_connection) ){
					
					$mailer = sanitize_key( $gosmtp->options['mailer'][$backup_connection]['mail_type'] );			
					$class = $gosmtp->mailer_list[$mailer]['class'];
					$parent_log = $gosmtp->mailer->last_log;
					
					if(class_exists($class)){
						$gosmtp->_mailer = $mailer;
						$gosmtp->mailer = new $class();
						$gosmtp->mailer->conn_id = $backup_connection;
						$gosmtp->mailer->parent_log = $parent_log;
						
						try{
							$backup_sent = $phpmailer->send();
						}catch(Exception $e){}
					}
					
				}
				
				// Reset connection
				$gosmtp->_mailer = $current_data['_mailer'];
				$gosmtp->mailer = $current_data['mailer'];
				$gosmtp->mailer->conn_id = $current_data['conn_id'];
				
				do_action( 'gosmtp_mailer_mail_send_after', $is_sent, $exception, $backup_sent );
				
				if($exception && !$backup_sent){
					throw $exception;
				}
				
				return $is_sent || $backup_sent;
			}

		}
	}
	
	if($phpmailer instanceof GOSMTP_PHPMailer){
		return $atts;
	}
	
	// Load all mailer
	$gosmtp->mailer_list = gosmtp_get_mailer_list();
	
	// For PHP Email dont do anything
	if(empty($gosmtp->options['mailer'][0]['mail_type']) || $gosmtp->options['mailer'][0]['mail_type'] == 'mail'){
		return $atts;
	}
	
	$mailer = sanitize_key( $gosmtp->options['mailer'][0]['mail_type'] );			
	$class = $gosmtp->mailer_list[$mailer]['class'];
	
	if(!class_exists($class)){
		return $atts;
	}
	
	$gosmtp->_mailer = $mailer;
	$gosmtp->mailer = new $class();
	
	// Handle the from email name
	add_filter('wp_mail_from', [$gosmtp->mailer, 'get_from'], 100, 1);

	$phpmailer = new GOSMTP_PHPMailer(true);
	
	return $atts;
}

// This adds the left menu in WordPress Admin page
add_action('admin_menu', 'gosmtp_admin_menu', 5);
function gosmtp_admin_menu() {

	global $wp_version;

	$capability = 'activate_plugins';// TODO : Capability for accessing this page

	// Add the menu page
	add_menu_page(__('GoSMTP'), __('GoSMTP'), $capability, 'gosmtp', 'gosmtp_page_handler', 'dashicons-email-alt');
	
	// Settings Page
	add_submenu_page( 'gosmtp', __('Settings'), __('Settings'), $capability, 'gosmtp', 'gosmtp_page_handler');
	
	// Test Mail Page
	add_submenu_page( 'gosmtp', 'Test Mail', 'Test Mail', $capability, 'gosmtp#test-mail', 'gosmtp_page_handler');
	
	if(defined('GOSMTP_PREMIUM')){
		
		// Logs Page
		add_submenu_page( 'gosmtp', __('Email Logs'), __('Email Logs'), $capability, 'gosmtp-logs', 'gosmtp_logs_handler');

		// Email reports
		add_submenu_page( 'gosmtp', __('Email Reports'), __('Email Reports'), $capability, 'email_reports', 'gosmtp_email_reports_handler');

		// Export Page
		add_submenu_page( 'gosmtp', __('Export'), __('Export'), $capability, 'export', 'gosmtp_export_handler');
		
		// Email reports
		add_submenu_page( '', __('Email Reports'), __('Weekly Email'), $capability, 'weekly_email_reports', 'gosmtp_weekly_email_handler');

		// License Page
		add_submenu_page( 'gosmtp', __('License'), __('License'), $capability, 'gosmtp-license', 'gosmtp_license_handler');
		
	}
	
	// Support
	add_submenu_page( 'gosmtp', __('Support'), __('Support'), $capability, 'gosmtp#support', 'gosmtp_page_handler');
}

// SMTP page Handler
function gosmtp_page_handler(){
	include_once GOSMTP_DIR .'/main/settings.php';
	gosmtp_settings_page();
}

function gosmtp_logs_handler(){
	include_once GOSMTP_PRO_DIR .'/main/smtp-logs.php';
}

function gosmtp_email_reports_handler(){
	include_once GOSMTP_PRO_DIR .'/main/email-reports.php';
	gosmtp_reports_table();
}

function gosmtp_export_handler(){
    include_once GOSMTP_PRO_DIR .'/main/export.php';
	gosmtp_export_page();
}

function gosmtp_weekly_email_handler(){
	include_once GOSMTP_PRO_DIR .'/main/weekly_email_reports.php';
	gosmtp_send_email_reports();
}

function gosmtp_license_handler(){
	global $gosmtp;
	
	include_once GOSMTP_PRO_DIR .'/main/license.php';
}

if(wp_doing_ajax()){	
	include_once GOSMTP_DIR.'/main/ajax.php';
}

add_action( 'admin_init', 'gosmtp_admin_init');
function gosmtp_admin_init(){
	wp_register_style( 'gosmtp-admin', GOSMTP_URL .'/css/admin.css', array(), GOSMTP_VERSION);
	wp_register_script( 'gosmtp-admin', GOSMTP_URL .'/js/admin.js', array('jquery'), GOSMTP_VERSION);
}

Filemanager

Name Type Size Permission Actions
css Folder 0755
images Folder 0755
js Folder 0755
main Folder 0755
gosmtp.php File 2.04 KB 0644
init.php File 8.62 KB 0644
license.txt File 34.33 KB 0644
readme.txt File 6.1 KB 0644