• 17-06-2021, 18:21:40
    #1
    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);
            }
        }
    }
  • 19-12-2023, 00:15:05
    #2
    Merhaba,
    Opencart sürümüm, tema ve ödeme kuruluşumuz sizinle aynı ve son bir aydır aynı sorunu yaşıyorum. Sorununuzun üzerinden 2 yıl geçmiş ve çözdüğünüzü düşünüyorum. Nasıl çözdüğünüzü paylaşırsanız müteşekkir olurum.
  • 19-12-2023, 18:33:15
    #3
    idepo adlı üyeden alıntı: mesajı görüntüle
    Merhaba,
    Opencart sürümüm, tema ve ödeme kuruluşumuz sizinle aynı ve son bir aydır aynı sorunu yaşıyorum. Sorununuzun üzerinden 2 yıl geçmiş ve çözdüğünüzü düşünüyorum. Nasıl çözdüğünüzü paylaşırsanız müteşekkir olurum.
    Paytr kullanmayarak çözdüm bu sorunu. Aynı siteyi iyzico'ya geçirdikten sonra ödeme ile alakalı tek bir sorun yaşamadım. Paytr hep sorunu sitede buluyordu. Sorun kendilerinden kaynaklandığını öğrenmiş oldum. Opencart alt yapısında paytr kullanmıyorum artık bundan dolayı.
  • 19-12-2023, 20:23:19
    #4
    Ozd adlı üyeden alıntı: mesajı görüntüle
    Paytr kullanmayarak çözdüm bu sorunu. Aynı siteyi iyzico'ya geçirdikten sonra ödeme ile alakalı tek bir sorun yaşamadım. Paytr hep sorunu sitede buluyordu. Sorun kendilerinden kaynaklandığını öğrenmiş oldum. Opencart alt yapısında paytr kullanmıyorum artık bundan dolayı.
    Ben 2019'da yüklediğim modülleriyle devam ediyorum halen. 2020 Yıılında modül güncellemeleri olmuştu ve sorun yok diye modülü güncellememiştim. Sanırım Paytr kendi güncellemelerini bu modüle göre yapıyor ve benim modül eski olduğu için aksamaya başladı şeklinde düşünmekten başka bir olasılık gelmiyor aklıma. Modülü güncelleyeceğim, yine sorun yaşarsam sizin yaptığınızı yapmak en mantıklısı. Yanıtınız için teşekkür ederim.
  • 02-02-2024, 15:27:57
    #5
    PayTr modülünün güncel sürümünü yükledim ve sorun çözüldü.
  • 04-02-2024, 09:19:16
    #6
    mail ayarlarınızda sorun varmış.