Автор Тема: Почтовые уведомления о заказе и Prestapress  (Прочитано 21215 раз)

01 Декабрь 2013, 13:10:30
Ответ #15
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Виталий, шаблоны все есть и все переведены. Правда для некоторых шаблонов написано "Тема для ХХХХХ не найдена, или тема уже сгенерирована в базе данных." Но не суть, например для шаблона с восстановлением пароля такого не написано.
Такое ощущение, что какая-то хрень с кодировкой для генерируемых писем. То ли где-то что-то не указано, то ли еще что. Я просто полный ноль в этом всём.
Судя по всему если клиент зарегистрирован как Vasya Pupkin с мэйлом mail@mail.ru и он восстанавливает пароль, то ему всё отправляется.
А вот если клиент зарегистрирован как Вася Пупкин с мэйлом mail@mail.ru, то генерируется письмо для получателя Это С‚РµСЃС mail@mail.ru.
И видя вот эту кракозябру Это тесС, почтовый сервер хостера ругается и отправляет нам письмо обратно с сообщением об ошибке "Mail failure - malformed recipient address. A message that you sent contained one or more recipient".
И на хостинге, и в админке везде выставлена кодировка UTF-8
01 Декабрь 2013, 13:58:42
Ответ #16
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно проверить кодировку в базе данных.

Попробуйте в файле classes/Mail.php заменить
$to_list->addTo($addr, '=?UTF-8?B?'.base64_encode($to_name).'?=');на
$to_list->addTo($addr, $to_name);
01 Декабрь 2013, 14:23:13
Ответ #17
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В Mail.php нет ни первого кода, ни второго, так что менять нечего...
01 Декабрь 2013, 14:38:24
Ответ #18
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Если у вас нет этой функции addTo, то у вас не стандарный класс Mail. Тогда ищите какие были изменения, сравнивайте с базовым классом.
01 Декабрь 2013, 14:41:26
Ответ #19
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Скачала сейчас дистрибутив Престашопа 1.4.10, смотрю там файл Mail.php, в нем есть код $to_list->addTo($addr, '=?UTF-8?B?'.base64_encode($to_name).'?=');
А наш файл Mail.php немного модифицированный.
Разработчика нашего сайта найти не можем, к сожалению. Мы своими силами можем как-то починить отправку почты?
01 Декабрь 2013, 14:55:15
Ответ #20
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Может есть возможность вернуться к стандартному классу Mail путем замены каких-нить файлов? Правда Престашоп 1.4.10 я скачала не русифицированный. Вы уж извините за мои глупые вопросы, просто состояние уже близкое к истерике. Надо открывать магазин, а самое главное не работает. Разработчик-фрилансер и в самый ответственный момент становится на несколько дней просто недоступен.
01 Декабрь 2013, 15:00:02
Ответ #21
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Если он менял базовый класс Mail, то для того, чтобы работали какие-то дополнительные функции.
Замена файла может привести к отказу работы отправки почты в других случаях.
Находите различия в файлах и анализируйте для чего это сделано.
01 Декабрь 2013, 15:07:00
Ответ #22
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 1146
  • Репутация: +338/-0
  • Job-Freelance - работа для специалистов PrestaShop
    • Просмотр профиля
    • Job Freelance - удаленная работа программистам, веб-мастерам и дизайнерам
Разработчик-фрилансер и в самый ответственный момент становится на несколько дней просто недоступен.
Найдите другого. С такими фрилансерами лучше не работать.
Напишите отзыв о его работе, укажите кто это. На этом форуме есть раздел - Отзывы о заказчиках и исполнителях
Job Freelance - предложения от европейских работодателей для  программистов, веб-мастеров и дизайнеров - специалистам по Magento и PrestaShop.
01 Декабрь 2013, 20:54:50
Ответ #23
  • Новичок
  • *
  • Сообщений: 17
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Не поверите:) Заменили mail.php на стандартный и все заработало. Всем большое спасибо за помощь, наводки и комментарии.
26 Январь 2014, 06:13:37
Ответ #24
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибка:
 A message that you sent contained one or more recipient addresses that were
incorrectly constructed:

  =?UTF-8?B?w5DCkMOQwrvDkMK1w5DCusORwoHDkMKww5DCvcOQwrTDkcKAIMOQwqHDkMKw?=\n =?UTF-8?B?... и т.д.

Вот пожалуйста , решение проблемы таково для PrestaShop™ 1.5.6.2:
Найти файл Message.php, по такому пути:
/tools/swift/Swift/Message.php
Вам нужно будет заменить строку № 79 с:
$this->setFrom("");На:
$this->setFrom("имя почты@сайт почты"); Например mail@gmail.comДалее найти файл Swift.php по такому пути:
tools/swift/Swift.php
Примерно в 370-й строке данного файла будет написан такой код:
if (!($has_reply_to = $message->getReplyTo())) $message->setReplyTo($from);После которого нужно добавить:
if (!$has_reply_to[0])
$message->setReplyTo($from->getAddress());
Если ситуация не изменилась, то Вам также нужно будет в 159-ю строку в файле /tools/swift/Swift/Plugin/MailSend.php
Добавить код:
$params = "";
Был рад помочь)
02 Февраль 2014, 14:08:50
Ответ #25
  • Гость
Сделала это на престе 1.5.6.1 - не помогло-(( по прежнему "Mail failure - malformed recipient address"
02 Февраль 2014, 14:18:23
Ответ #26
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибка
"Mail failure - malformed recipient address"связанна с тем, что конф. сервера разрешает использовать только определенный формат данных.
На некорых серверах может помочь замена в классе /classes/Mail.php
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name))
$to_name = null;
на
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name))
//$to_name = null;
02 Февраль 2014, 14:34:18
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Решение - FixBug - Remove second email in recipient
Можно обновить до последней версии, сборку взять с github.
03 Февраль 2014, 01:01:56
Ответ #28
  • Гость
Ошибка
"Mail failure - malformed recipient address"связанна с тем, что конф. сервера разрешает использовать только определенный формат данных.
На некорых серверах может помочь замена в классе /classes/Mail.php
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name))
$to_name = null;
на
// Do not crash for this error, that may be a complicated customer name
if (is_string($to_name) && !empty($to_name) && !Validate::isMailName($to_name))
//$to_name = null;

Попробовала - не помогло-(

03 Февраль 2014, 01:27:15
Ответ #29
  • Гость
Решение - FixBug - Remove second email in recipient
Можно обновить до последней версии, сборку взять с github.

Сперва исправила по инструкции - не помогло
затем заменила файл до последнего - не помогло...
Неужто хостер у меня такой гадина-(((