public function send_error_mail()
    {

        if (Config::get('exception_mail') == '') return false;

        $error_msg = (string)"Script Name: {$_SERVER['SCRIPT_NAME']}\n";
        $error_msg .= (string)"Port: {$_SERVER['SERVER_PORT']}\n";
        $error_msg .= (string)"Query String: {$_SERVER['QUERY_STRING']}\n";
        $error_msg .= (string)"Server Name: {$_SERVER['SERVER_NAME']}\n";
        $error_msg .= (string)"Request URI: {$_SERVER['REQUEST_URI']}\n";
        $error_msg .= (string)"Exception Message: $this->message\n";
        $error_msg .= (string)"Remote User: {$_SERVER['REMOTE_ADDR']}\n";
        $error_msg .= (string)"Client: {$_SERVER['HTTP_USER_AGENT']}\n";
        $error_msg .= (string)'Referer: ' . (isset($_SERVER ['HTTP_REFERER']) ? $_SERVER ['HTTP_REFERER'] : null) . "\n";
        $error_msg .= (string)"Request Time: {$_SERVER['REQUEST_TIME']}\n";
        $error_msg .= (string)"debug_backtrace: $this->backtrace\n";

        return mail($this->fatal_recipient, $this->fatal_subject, $error_msg, $this->fatal_from);
    }