Server IP : 172.67.157.199 / Your IP : 3.22.77.237 [ Web Server : Apache System : Linux b70eb322-3aee-0c53-7c82-0db91281f2c6.secureserver.net 6.1.90-1.el9.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Thu May 2 12:09:22 EDT 2024 x86_64 User : root ( 0) PHP Version : 8.0.30.2 Disable Function : NONE Domains : 0 Domains MySQL : ON | cURL : ON | WGET : ON | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/wp-content/plugins/check-email/include/Util/ |
Upload File : |
<?php namespace CheckEmail\Util; defined( 'ABSPATH' ) || exit; // Exit if accessed directly /** * Class Email Header Parser. */ class Check_Email_Header_Parser { public function join_headers( $data ) { $headers = ''; if ( ! empty( $data['from'] ) ) { $headers .= 'From: ' . $data['from'] . "\r\n"; } if ( ! empty( $data['cc'] ) ) { $headers .= 'CC: ' . $data['cc'] . "\r\n"; } if ( ! empty( $data['bcc'] ) ) { $headers .= 'BCC: ' . $data['bcc'] . "\r\n"; } if ( ! empty( $data['reply_to'] ) ) { $headers .= 'Reply-to: ' . $data['reply_to'] . "\r\n"; } if ( ! empty( $data['content_type'] ) ) { $headers .= 'Content-type: ' . $data['content_type'] . "\r\n"; } return $headers; } public function parse_headers( $headers ) { return $this->parse( $headers ); } private function parse( $headers ) { $data = array(); $arr_headers = explode( "\n", $headers ); foreach ( $arr_headers as $header ) { $split_header = explode( ':', $header ); $value = $this->parse_header_line( $split_header ); if ( trim( $value ) != '' ) { switch ( strtolower( $split_header[0] ) ) { case 'from': $data['from'] = $value; break; case 'cc': $data['cc'] = $value; break; case 'bcc': $data['bcc'] = $value; break; case 'reply-to': $data['reply_to'] = $value; break; case 'content-type': $data['content_type'] = $value; break; } } } return $data; } private function parse_header_line( $header ) { $value = ''; if ( 2 == count( $header ) ) { if ( is_array( $header[1] ) ) { $value = trim( implode( ',', array_map( 'trim', $header[1] ) ) ); } else { $value = trim( $header[1] ); } } return $value; } }