Prestashop: помилки при спробі надіслати пошту

  у розділі Технічні теми 

Повідомлення надіслано

В налаштуваннях Prestashop1 Використовується функція mail() від PHP. Ніякі листи не "ходять". При спробі надіслати тестовий лист виникає помилка:

Sending failed using mail() as PHP's default mail() function returned boolean FALSE

Перевірка mail()

Переконайтеся що це не глобальна проблема сервера.

Створіть на сервері PHP-файл, наприклад mail-test.php з таким кодом:

<?php 
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );
    $from = "from@test.com";
    $to = "to@test.com";
    $subject = "PHP Mail Test script";
    $message = "This is a test to check the PHP Mail functionality";
    $headers = "From:" . $from;
    mail($to,$subject,$message, $headers);
    echo "Test email sent";
?>

Змініть from@test.com та to@test.com на адресу з доменом сайту (не суттєво) і свою адресу на яку прийде лист відповідно.

Запустіть скрипт на сервері, або відкрийте в веб-оглядачеві http://example.com/mail-test.php. Якщо лист прийшов — на сервері все OK, проблема справді в Prestashop.

Виправлення помилки Prestashop

NativeMail.php

Редагувати /tools/swift/Swift/Connection/NativeMail.php. Знайти public function __construct($additional_params="-oi -f %s").

Видалити -f %s. Зберегти файл.

MailSend.php

Редагувати /tools/swift/Swift/Plugin/MailSend.php. Знайти public function __construct($params="-oi -f %s").

Видалити -f %s. Зберегти файл.


  1. Prestashop 1.6 

  2. За мотивами 1, 2


Коментарі