Files
torebki-fabiola.pl/wp-content/plugins/email-subscribers/lite/includes/services/class-es-email-auth-header-verify.php
2026-03-05 13:07:40 +01:00

91 lines
2.1 KiB
PHP

<?php
class ES_Service_Auth_Header_Check extends ES_Services {
/**
* Service command
*
* @var string
*
* @sinc 5.x
*/
public $cmd = '/email/auth/:mailbox';
/**
* ES_Email_Auth_Headers
*
* @since 4.6.0
*/
public function __construct() {
parent::__construct();
}
/**
* Get Email Authentication Headers
*
* @return mixed
*
* @since 4.6.0
*/
public function get_email_authentication_headers() {
$mailbox = ES_Common::get_email_verify_test_email();
$this->cmd = str_replace( ':mailbox', $mailbox, $this->cmd );
$request_data = array();
$request_method = 'GET';
$validate_request = true;
$response = $this->send_request( $request_data, $request_method, $validate_request );
$res = array();
if ( is_wp_error( $response ) ) {
$res['status'] = 'error';
} else {
if ( 'success' === $response['status']) {
$res['status'] = 'success';
$res['data'] = $response['data'];
} else {
$res['additional_message'] = __( ' The test email did not reach our test server. Did you get any test emails on your email? This could be a temporary problem, but it can also mean that emails are getting stuck on your server, or getting rejected by recipients.', 'email-subscribers' );
$res['status'] = 'error';
}
}
return $res;
}
public static function get_verification_score() {
$headers = get_option('ig_es_email_auth_headers', []);
$points = 0;
$remark = '<div class="text-gray-600 font-bold">Not verified</div>';
if ( ! empty($headers) ) {
$remark = '<div class="text-red-500 font-bold">Needs Improvement</div>';
foreach ( $headers as $header ) {
if ( strpos( $header['test'], 'PASS') !== -1 ) {
$points -= 0.1;
} elseif ( strpos( $header['test'], 'FAIL') !== -1 ) {
$points += 0.1;
}
}
if ($points < -0.2) {
$remark = '<div class="text-green-400 font-bold">Excellent</div>';
} elseif ($points < 0) {
$remark = '<div class="text-green-400 font-bold">Good</div>';
}
}
$result = array(
'points' => $points,
'remark' => $remark
);
return( $result );
}
}