2.14.3.1.7. Помилка RCPT TO not accepted from server

Помилка «RCPT TO not accepted from server» в OpenCart найчастіше виникає в тому випадку, якщо сайт намагається надіслати лист з некоректною адресою відправника. За замовчуванням OpenCart в заголовку from використовує поштову скриньку магазину, через що і виникає подібна проблема.

⚠️ Помилка «RCPT TO not accepted from server» видається скриптами самого OpenCart і найчастіше ніяк не пов'язана з адресою одержувача, оскільки повертається під час обробки адреси відправника.

Вирішити цю проблему можна декількома способами:

Увага!

Інформація взята з інструкції з налаштування пошти в OpenCart. Для коректної роботи пошти рекомендуємо налаштовувати її саме за цією інструкцією.

Щоб змінити поштову скриньку магазину, виконайте наступне:

  1. Перейдіть у розділ «Система → Налаштування» («System → Settings»):
  2. Праворуч від назви магазину натисніть «Редагувати» («Edit»):
  3. Переключіться на вкладку «Магазин» («Store») (у деяких версіях може знадобитися перехід у розділ «Основне» («Main»)):
  4. У полі «E-Mail» вкажіть поштову скриньку, на яку потрібно отримувати листи і яка буде вказана в налаштуваннях підключення до SMTP (додаткові скриньки можна буде вказати пізніше):

Увага!

Перед виконанням дій створіть резервну копію сайту і завантажте її собі на пристрій, щоб мати можливість у будь-який момент відновити файл обробника SMTP.

Щоб виправити роботу надсилання листів, відредагуйте деякі рядки в файлі system/library/mail/smtp.php, а саме:

  • У рядку 27 знайдіть такий код:
    $header .= 'From: =?UTF-8?B?' . base64_encode($this->from) . '?= <' . $this->from. '>' . PHP_EOL;

    І замініть його на такий:

    $header .= 'From: =?UTF-8?B?' . base64_encode($this->smtp_username) . '?= <' . $this->smtp_username . '>' . PHP_EOL;
  • У рядку 27 знайдіть такий код:
    fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . "\r\n");

    І замініть його на такий:

    fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>XVERP' . "\r\n");
  • У рядку 27 знайдіть такий код:
    fputs($handle, 'MAIL FROM: <' . $this->from. '>' . "\r\n");

    І замініть його на такий:

    fputs($handle, 'MAIL FROM: <' . $this->smtp_username . '>' . "\r\n");

Після змін перевірте надсилання листів. Зверніть увагу, що в якості відправника буде вказана поштова скринька, до якої здійснюється підключення по SMTP. Також слід розуміти, що при оновленні або встановленні деяких розширень може знадобитися повторно внести зміни.

Зміст