Spamworldpro Mini Shell
Spamworldpro


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/Services/SendPulse/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/www/wp-content/plugins/post-smtp/Postman/Postman-Mail/Services/SendPulse/Handler.php
<?php

class PostmanSendpulse extends PostmanServiceRequest {

	/**
	 * Success Code
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private $email_sent_code = 200;

	/**
	 * API Key and Secret Key
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private $api_key = ' ';
	private $secret_key = ' ';


	/**
	 * Parameters used to get Token
	 *
	 * @since 2.9.0
	 * @version 1.0 
	 */
	private $grant_type = 'client_credentials';
	private $auth_response_body = ' ';
	private $auth_response = ' ';
	private $token = ' ';

	/**
	 * Base URL
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */

	private $base_url = 'https://api.sendpulse.com';


	/**
	 * Constructor PostmanSendpulse
	 *
	 * @param mixed $api_key Api Key.
	 * @param mixed $secret_key Secret Key.
	 * @since 2.9.0
	 * @version 1.0
	 */
	public function __construct( $api_key, $secret_key )
	{

		$this->api_key = $api_key;
		$this->secret_key = $secret_key;
		parent::__construct( $this->base_url );
	}


	/**
	 * Header to get token
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private function auth_headers() {

		return array(
			'Content-Type'        =>  'application/json'
		);
	}

	/**
	 * Body to get token
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private function auth_body() {

		return array(
			'grant_type'        =>  $this->grant_type,
			'client_id'         =>  $this->api_key,
			'client_secret'     =>  $this->secret_key
		);
	}

	/**
	 * Authenciation to get Token
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private function authentication() {

		$content = json_encode( $this->auth_body() );

		$this->auth_response_body = $this->request(
			'POST',
			'/oauth/access_token',
			$this->auth_headers(),
			$content,
			$this->email_sent_code

		);

		$this->auth_response = json_decode( $this->auth_response_body['body'], true );

		//Auto delete token when token expires after given time period.

		set_transient( 'sendpulse_token', $this->auth_response['access_token'], $this->auth_response['expires_in'] );
	}

	/**
	 * Prepares Header for Request
	 *
	 * @since 2.9.0
	 * @version 1.0
	 */
	private function get_headers()
	{

		if ( get_transient('sendpulse_token') ) {

			$this->token = get_transient( 'sendpulse_token' );
		} else {

			$this->authentication();
			$this->token = get_transient( 'sendpulse_token' );
		}

		return array(

			'Content-Type'      =>  'application/json',
			'Authorization'     =>  'Bearer ' . $this->token

		);
	}

	/**
	 * Sends Email using Sendpulse transmissions end point
	 *
	 * @param mixed $content
	 * @since 2.9.0
	 * @version 1.0
	 */
	public function send( $content ) {

		$content = json_encode( $content );

		return $this->request(
			'POST',
			'/smtp/emails',
			$this->get_headers(),
			$content,
			$this->email_sent_code
		);
	}
}

Spamworldpro Mini