
В налаштуваннях 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 = "[email protected]";
$to = "[email protected]";
$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";
?>
Змініть [email protected] та [email protected] на адресу з доменом сайту (не суттєво) і свою адресу на яку прийде лист відповідно.
Запустіть скрипт на сервері, або відкрийте в веб-оглядачеві 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. Зберегти файл.
-
Prestashop 1.6 ↩