Merhaba opencart v3.0.3.2 kullanıyorum. Journal 3 teması ve paytr ödeme modülü kullanıyorum. Hata logunun bir kısmını paylaştım. Siparişlerin bir çoğu eksik siparişlere düşüyor. Paytr paneline baktığımda ise işlemler kısmında sürekli devam ediyor gözüküyor ve deniyor. Bu problemin sebebi nedir ilk defa karşılaşıyorum böyle bir hata ile. Nasıl çözebilirim.



[17-Jun-2021 14:32:12 UTC] PHP Fatal error:  Uncaught Exception: Error: DATA not accepted from server! in /home/example/public_html/system/library/mail/smtp.php:330

Stack trace:

#0 /home/example/public_html/system/library/mail.php(142): Mail\Smtp->send()

#1 /home/example/public_html/catalog/model/tool/pro_email.php(847): Mail->send()

#2 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_loader.php(256): ModelToolProEmail->generate(Array)

#3 /home/example/public_html/system/engine/proxy.php(47): Loader->{closure}(Array, Array)

#4 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(300): Proxy->__call('generate', Array)

#5 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(34): ControllerMailOrder->add(Array, '2', '<div class="pay...', '1')

#6 /home/example /public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_action.php(79): ControllerMailOrder->index('checkout/order/...', Array)

#7  in /home/example /public_html/system/library/mail/smtp.php on line 330

[17-Jun-2021 14:33:08 UTC] PHP Fatal error:  Uncaught Exception: Error: DATA not accepted from server! in /home/example/public_html/system/library/mail/smtp.php:330

Stack trace:

#0 /home/example/public_html/system/library/mail.php(142): Mail\Smtp->send()

#1 /home/example/public_html/catalog/model/tool/pro_email.php(847): Mail->send()

#2 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_loader.php(256): ModelToolProEmail->generate(Array)

#3 /home/example/public_html/system/engine/proxy.php(47): Loader->{closure}(Array, Array)

#4 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(300): Proxy->__call('generate', Array)

#5 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(34): ControllerMailOrder->add(Array, '2', '<div class="pay...', '1')

#6 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_action.php(79): ControllerMailOrder->index('checkout/order/...', Array)

#7  in /home/example/public_html/system/library/mail/smtp.php on line 330

[17-Jun-2021 14:33:12 UTC] PHP Fatal error:  Uncaught Exception: Error: DATA not accepted from server! in /home/example/public_html/system/library/mail/smtp.php:330

Stack trace:

#0 /home/example/public_html/system/library/mail.php(142): Mail\Smtp->send()

#1 /home/example/public_html/catalog/model/tool/pro_email.php(847): Mail->send()

#2 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_loader.php(256): ModelToolProEmail->generate(Array)

#3 /home/example/public_html/system/engine/proxy.php(47): Loader->{closure}(Array, Array)

#4 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(300): Proxy->__call('generate', Array)

#5 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_catalog_controller_mail_order.php(34): ControllerMailOrder->add(Array, '2', '<div class="pay...', '1')

#6 /home/example/public_html/vqmod/vqcache/vq2-system_storagee_modification_system_engine_action.php(79): ControllerMailOrder->index('checkout/order/...', Array)

#7  in /home/example/public_html/system/library/mail/smtp.php on line 330
Smtp.php dosyasının içeriği
<?php
namespace Mail;
class Smtp {
    public $smtp_hostname;
    public $smtp_username;
    public $smtp_password;
    public $smtp_port = 25;
    public $smtp_timeout = 5;
    public $verp = false;

    public function send() {
        if (is_array($this->to)) {
            $to = implode(',', $this->to);
        } else {
            $to = $this->to;
        }

        $boundary = '----=_NextPart_' . md5(time());

        $header  = 'MIME-Version: 1.0' . PHP_EOL;
        $header .= 'To: <' . $to . '>' . PHP_EOL;
        $header .= 'Subject: =?UTF-8?B?' . base64_encode($this->subject) . '?=' . PHP_EOL;
        $header .= 'Date: ' . date('D, d M Y H:i:s O') . PHP_EOL;
        $header .= 'From: =?UTF-8?B?' . base64_encode($this->sender) . '?= <' . $this->from . '>' . PHP_EOL;
        
        if (!$this->reply_to) {
            $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->sender) . '?= <' . $this->from . '>' . PHP_EOL;
        } else {
            $header .= 'Reply-To: =?UTF-8?B?' . base64_encode($this->reply_to) . '?= <' . $this->reply_to . '>' . PHP_EOL;
        }
        
        $header .= 'Return-Path: ' . $this->from . PHP_EOL;
        $header .= 'X-Mailer: PHP/' . phpversion() . PHP_EOL;
        $header .= 'Content-Type: multipart/mixed; boundary="' . $boundary . '"' . PHP_EOL . PHP_EOL;

        if (!$this->html) {
            $message  = '--' . $boundary . PHP_EOL;
            $message .= 'Content-Type: text/plain; charset="utf-8"' . PHP_EOL;
            $message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;
            $message .= $this->text . PHP_EOL;
        } else {
            $message  = '--' . $boundary . PHP_EOL;
            $message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . PHP_EOL . PHP_EOL;
            $message .= '--' . $boundary . '_alt' . PHP_EOL;
            $message .= 'Content-Type: text/plain; charset="utf-8"' . PHP_EOL;
            $message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;

            if ($this->text) {
                $message .= $this->text . PHP_EOL;
            } else {
                $message .= 'This is a HTML email and your email client software does not support HTML email!' . PHP_EOL;
            }

            $message .= '--' . $boundary . '_alt' . PHP_EOL;
            $message .= 'Content-Type: text/html; charset="utf-8"' . PHP_EOL;
            $message .= 'Content-Transfer-Encoding: 8bit' . PHP_EOL . PHP_EOL;
            $message .= $this->html . PHP_EOL;
            $message .= '--' . $boundary . '_alt--' . PHP_EOL;
        }

        foreach ($this->attachments as $attachment) {
            if (file_exists($attachment)) {
                $handle = fopen($attachment, 'r');

                $content = fread($handle, filesize($attachment));

                fclose($handle);

                $message .= '--' . $boundary . PHP_EOL;
                $message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . PHP_EOL;
                $message .= 'Content-Transfer-Encoding: base64' . PHP_EOL;
                $message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . PHP_EOL;
                $message .= 'Content-ID: <' . urlencode(basename($attachment)) . '>' . PHP_EOL;
                $message .= 'X-Attachment-Id: ' . urlencode(basename($attachment)) . PHP_EOL . PHP_EOL;
                $message .= chunk_split(base64_encode($content));
            }
        }

        $message .= '--' . $boundary . '--' . PHP_EOL;

        if (substr($this->smtp_hostname, 0, 3) == 'tls') {
            $hostname = substr($this->smtp_hostname, 6);
        } else {
            $hostname = $this->smtp_hostname;
        }

        $handle = fsockopen($hostname, $this->smtp_port, $errno, $errstr, $this->smtp_timeout);

        if (!$handle) {
            throw new \Exception('Error: ' . $errstr . ' (' . $errno . ')');
        } else {
            if (substr(PHP_OS, 0, 3) != 'WIN') {
                socket_set_timeout($handle, $this->smtp_timeout, 0);
            }
    
            while ($line = fgets($handle, 515)) {
                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                //some SMTP servers respond with 220 code before responding with 250. hence, we need to ignore 220 response string
                if (substr($reply, 0, 3) == 220 && substr($line, 3, 1) == ' ') {
                    $reply = '';
                    continue;
                }
                else if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if (substr($reply, 0, 3) != 250) {
                throw new \Exception('Error: EHLO not accepted from server!');
            }

            if (substr($this->smtp_hostname, 0, 3) == 'tls') {
                fputs($handle, 'STARTTLS' . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 220) {
                    throw new \Exception('Error: STARTTLS not accepted from server!');
                }

                stream_socket_enable_crypto($handle, true, STREAM_CRYPTO_METHOD_TLS_CLIENT);
            }

            if (!empty($this->smtp_username)  && !empty($this->smtp_password)) {
                fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 250) {
                    throw new \Exception('Error: EHLO not accepted from server!');
                }

                fputs($handle, 'AUTH LOGIN' . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 334) {
                    throw new \Exception('Error: AUTH LOGIN not accepted from server!');
                }

                fputs($handle, base64_encode($this->smtp_username) . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 334) {
                    throw new \Exception('Error: Username not accepted from server!');
                }

                fputs($handle, base64_encode($this->smtp_password) . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 235) {
                    throw new \Exception('Error: Password not accepted from server!');
                }
            } else {
                fputs($handle, 'HELO ' . getenv('SERVER_NAME') . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if (substr($reply, 0, 3) != 250) {
                    throw new \Exception('Error: HELO not accepted from server!');
                }
            }

            if ($this->verp) {
                //fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . "\r\n");abdullah
                fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>XVERP' . "\r\n");
            } else {
                //fputs($handle, 'MAIL FROM: <' . $this->from . '>' . "\r\n"); abdullah
                fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>' . "\r\n");
            }

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if (substr($reply, 0, 3) != 250) {
                throw new \Exception('Error: MAIL FROM not accepted from server!');
            }

            if (!is_array($this->to)) {
                fputs($handle, 'RCPT TO: <' . $this->to . '>' . "\r\n");

                $reply = '';

                while ($line = fgets($handle, 515)) {
                    $reply .= $line;

                    if (substr($line, 3, 1) == ' ') {
                        break;
                    }
                }

                if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
                    throw new \Exception('Error: RCPT TO not accepted from server!');
                }
            } else {
                foreach ($this->to as $recipient) {
                    fputs($handle, 'RCPT TO: <' . $recipient . '>' . "\r\n");

                    $reply = '';

                    while ($line = fgets($handle, 515)) {
                        $reply .= $line;

                        if (substr($line, 3, 1) == ' ') {
                            break;
                        }
                    }

                    if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
                        throw new \Exception('Error: RCPT TO not accepted from server!');
                    }
                }
            }

            fputs($handle, 'DATA' . "\r\n");

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if (substr($reply, 0, 3) != 354) {
                throw new \Exception('Error: DATA not accepted from server!');
            }

            // According to rfc 821 we should not send more than 1000 including the CRLF
            $message = str_replace("\r\n", "\n", $header . $message);
            $message = str_replace("\r", "\n", $message);

            $lines = explode("\n", $message);

            foreach ($lines as $line) {
                $results = str_split($line, 998);

                foreach ($results as $result) {
                    if (substr(PHP_OS, 0, 3) != 'WIN') {
                        fputs($handle, $result . "\r\n");
                    } else {
                        fputs($handle, str_replace("\n", "\r\n", $result) . "\r\n");
                    }
                }
            }

            fputs($handle, '.' . "\r\n");

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if (substr($reply, 0, 3) != 250) {
                throw new \Exception('Error: DATA not accepted from server!');
            }

            fputs($handle, 'QUIT' . "\r\n");

            $reply = '';

            while ($line = fgets($handle, 515)) {
                $reply .= $line;

                if (substr($line, 3, 1) == ' ') {
                    break;
                }
            }

            if (substr($reply, 0, 3) != 221) {
                throw new \Exception('Error: QUIT not accepted from server!');
            }

            fclose($handle);
        }
    }
}