Автор Тема: Проблемы с оповещением о новом заказе на почту. Prestashop версия 1.7.7  (Прочитано 3628 раз)

12 Декабрь 2020, 15:01:43
Ответ #15
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для prestashop 1.7.7.0 лучше php 7.3
Настройки почты в админке - Расширенные параметры / E-mail
Если почта от домена и настроена, то лучше выбрать - Использовать функцию PHP mail
Если почта от стороннего сервиса, тогда - Задать свои параметры для SMTP, при выборе этого варианта откроется блок Email и нужно заполнить:
Почтовый домен - Полное доменное имя (оставьте пустым если не знаете)
Сервер SMTP - IP адрес или доменное имя сервера (например, smtp.mydomain.ru).
Имя пользователя SMTP - Оставьте пустым если неприменимо
Пароль SMTP - Оставьте пустым если неприменимо
Шифрование
Порт
Где хранятся эти настройки?.... в таблице бд, в каком файле? Где хранится? а не где настраивать.
12 Декабрь 2020, 15:25:49
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
13 Декабрь 2020, 22:28:23
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
Вот что пишут на оф. сайте для Prestashop в. 1.7.7
mail() was deactivated in 1.7.7. due to security reasons
https://github.com/PrestaShop/PrestaShop/pull/20124
Мое мнение, о чем не раз говорил, prestashop начиная с версии 1.7 потерял звание лучший движок для интернет-магазина.
Чем дальше они его улучшают, тем больше портят.

Вам советываю не переходить на Prestashop 1.7.7, установите Prestashop в. 1.7.4 и php замените на 7.0, проблем не будет.
13 Декабрь 2020, 22:37:21
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Вот что пишут на оф. сайте для Prestashop в. 1.7.7
mail() was deactivated in 1.7.7. due to security reasons
https://github.com/PrestaShop/PrestaShop/pull/20124
Мое мнение, о чем не раз говорил, prestashop начиная с версии 1.7 потерял звание лучший движок для интернет-магазина.
Чем дальше они его улучшают, тем больше портят.

Вам советываю не переходить на Prestashop 1.7.7, установите Prestashop в. 1.7.4 и php замените на 7.0, проблем не будет.
Полностью согласен.
С одним уточнением, pretsashop с версии 1.7 стал лучшим движком для интернет-магазина для ПРОГРАМИСТА!!!
Кто не согласен, отрываейте отдельную ветку, поясню. Админ строгий тут ::)
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
14 Декабрь 2020, 11:51:02
Ответ #19
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вчера 24 часа бился с вопросом неотправки писем используя PHP на 1.7.7.0. Не программист, потому путем изучения всего англо- и русского интернета. Бесполезно!

Тестирую на локалке на OpenServer.

1.7.6.9  прекрасно отправляет обоими способами (PHP и SMTP)

На 1.7.7.0 написано: Use /usr/sbin/sendmail (recommended; works in most cases)

При этом при отправке тестового письма выдается ошибка:

Ошибка: пожалуйста проверьте настройки
Process could not be started [The system cannot find the path specified. ]
В OpenServer по этому пути нет sendmail. Я создал эти папки в корне, скопировал туда sendmail. Пробовал исполняемые файлы класть и в /usr/sbin/sendmailи в /usr/sbin/sendmail/sendmail.

Либо не работает, либо зависает. Дебаг режим толкование ошибки не дает.

Попробовал менять переменную sendmail_path в настройках PHP 7.3. По умолчанию там стоит непонятный
sendmail_path               = "%mailway%".

Попробовал варианты (по результатам поиска в интернете):
sendmail_path                  = "%sprogdir%\usr\sbin\sendmail" -t
sendmail_path                = "%sprogdir%/modules/sendmail"
sendmail_path                = /usr/bin/sendmail -t
sendmail_path                = "/usr/bin/sendmail -t"
sendmail_path                = \usr\bin\sendmail -t
sendmail_path                  = "%sprogdir%/usr/sbin/sendmail" -t -i
sendmail_path                  = "%sprogdir%\usr\sbin\sendmail"

Ни один вариант не работает.

ВОПРОСЫ:
1. Кому-то удалось на OpenServer, чтобы работало на 1.7.7.0?

2. Может такое быть, что при ошибке на локалке, что не находится sendmail по пути /usr/sbin/sendmail на сервере все будет OK?
Переносить и проверять пока долго.
14 Декабрь 2020, 12:16:33
Ответ #20
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Пробывал на сервере настроить отправку писем на Prestashop 1.7.7, не работает, перепробывал все варианты, которые нашел на prestashop.com.
Откатил Prestashop на 1.7.6 все прекрасно работает.
Подожду переходить на новую версию, пока не исправят очередной баг. Если самому править, потом с обновлением будут проблемы.
Бесполезная работа получается.
14 Декабрь 2020, 12:51:48
Ответ #21
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
-f
Пробывал на сервере настроить отправку писем на Prestashop 1.7.7, не работает, перепробывал все варианты, которые нашел на prestashop.com.
Откатил Prestashop на 1.7.6 все прекрасно работает.

А Вы пробовали, используя только PHP? Дело в том, что на локалке через SMTP отправляет нормально.

У отправки через SMTP есть какие-то недостатки по сравнению с PHP-вариантом?
14 Декабрь 2020, 13:28:14
Ответ #22
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Пробывал через SMTP, отправляет нормально.
Но мне нужен вариант отправки PHP mail, требование клиента.
Поэтому пришлось отказаться от Prestashop 1.7.7
С SMTP тоже можно, если у вас почтовый сервис позволяет.
Клиент отказался от этого варианта из-за ограничений по количеству писем.
Со своего сервера можно слать без ограничений, а у сторонних лимиты.
14 Декабрь 2020, 14:15:34
Ответ #23
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Решение этой проблемы:
Цитировать
Hi all,
After further investigation, it looks like the root cause of this issue is that we're not using the mail() function anymore for security reasons and using /usr/sbin/sendmail instead, which led to use proc_open. You can have a bit more information in the description:
Since we updated Swiftmailer, the class Swift_Transport_MailTransport which was using the mail() function is not available anymore because it has been removed for security reasons. Instead we are relying on the class Swift_Transport_SendmailTransport which use /usr/sbin/sendmail. Even if that change has been made a few months ago, the Back Office options didn't reflect that change. This PR aims to change the wording according to that change.

Unfortunately, for this new method, proc_open is mandatory. You can either change your php configuration to allow its use (or ask your hosting provider to do so), or use another method like setting your own SMTP parameters.

https://php.ru/manual/function.proc-open.html
14 Декабрь 2020, 14:36:59
Ответ #24
  • Старожил
  • ****
  • Сообщений: 274
  • Репутация: +3/-0
    • Просмотр профиля
Решение этой проблемы:
Цитировать
Hi all,
After further investigation, it looks like the root cause of this issue is that we're not using the mail() function anymore for security reasons and using /usr/sbin/sendmail instead, which led to use proc_open. You can have a bit more information in the description:
Since we updated Swiftmailer, the class Swift_Transport_MailTransport which was using the mail() function is not available anymore because it has been removed for security reasons. Instead we are relying on the class Swift_Transport_SendmailTransport which use /usr/sbin/sendmail. Even if that change has been made a few months ago, the Back Office options didn't reflect that change. This PR aims to change the wording according to that change.

Unfortunately, for this new method, proc_open is mandatory. You can either change your php configuration to allow its use (or ask your hosting provider to do so), or use another method like setting your own SMTP parameters.

https://php.ru/manual/function.proc-open.html
На практике как это реализовать? Что делать чтобы почта отправлялась с сайта?
03 Январь 2021, 11:27:30
Ответ #25
  • Пользователь
  • **
  • Сообщений: 77
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Ребят, решил кто проблему ? Напишите, пожалуйста...
27 Апрель 2021, 18:57:36
Ответ #26
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
    • Ионизаторы воздуха Лампа Чижевского
Добрый день!
Ребят, решил кто проблему ? Напишите, пожалуйста...
Начиная с версии 1.7.7.0 прекращено использование, в целях безопасности, функции mail(), вместо неё используется /usr/sbin/sendmail
Что привело к использованию proc_open.
К сожалению, для этого нового метода proc_open обязательн.
Чтобы его использование  обратитесь к своему хостинг-провайдеру, если вам откажут, смените хостера или используйте SMTP.

Источник https://github.com/PrestaShop/PrestaShop/pull/20124

Поклонникам первоначальной отладки магазина в OpenServer, увы настроить почтовую заглушку для проверки отправки почты Вам не удасться.
Почтовая заглушка в OpenServer использует функцию mail(), которую prestashop 1.7.7.x более не поддерживает.
Все для удобств пользователя.


Больной нуждается в уходе врача, чем дальше уйдет врач тем легче больному
07 Май 2021, 13:28:34
Ответ #27
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Ребят, решил кто проблему ? Напишите, пожалуйста...
Начиная с версии 1.7.7.0 прекращено использование, в целях безопасности, функции mail(), вместо неё используется /usr/sbin/sendmail
Что привело к использованию proc_open.
К сожалению, для этого нового метода proc_open обязательн.
Чтобы его использование  обратитесь к своему хостинг-провайдеру, если вам откажут, смените хостера или используйте SMTP.

Источник https://github.com/PrestaShop/PrestaShop/pull/20124

Поклонникам первоначальной отладки магазина в OpenServer, увы настроить почтовую заглушку для проверки отправки почты Вам не удасться.
Почтовая заглушка в OpenServer использует функцию mail(), которую prestashop 1.7.7.x более не поддерживает.
Все для удобств пользователя.

Сообщил хостеру о новом методе. Вот что ответил reg.ru

Как мы видим, вы используете отправку через сокеты, но в этом случае тоже нужна аутентификация, а ее не происходит.

private $params = [
        'timeout' => 30,
        'blocking' => 1,
        'command' => '/usr/sbin/sendmail -bs',
        'type' => Swift_Transport_IoBuffer::TYPE_PROCESS,
        ];
Если использовать отправку через локальные процессы, то тогда проблем не возникает, так как вроде системной более не требуется аутентификация.

В данном случае по вопросу настройки отправки через сокеты и корректной работы аутентификации рекомендуем обратиться к разработчикам сайта.  :(

Есть какое-то решение?
08 Май 2021, 15:22:57
Ответ #28
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Как у вас настроена отправка почты?
Через SMTP отправляет нормально?