Рекомендуем

Скидки до 30% на все темы и подписки... Никаких уловок или обмана Подписка на GavickPro включает в себя полный доступ к шаблонам для Joomla и WordPress, без каких-либо...

Далее...

Elegant Icon Font - 310 великолепных иконок... ElegantThemes создали поистине самый красивый, элегантный и полный набор иконок. Набор предлагается в виде веб шрифта,...

Далее...

JA Fubix адаптивный шаблон для Joomla... JA Fubix - апрельский шаблон от JoomlArt. Отлично подходящий для сайтов с тематикой спортивных новостей использующих...

Далее...

T3 Framework от JoomlArt О фреймворке Фреймворк T3 заслужено считается одним из самых популярных шаблонных фреймворков для Joomla. Все шаблоны...

Далее...

3 популярных фреймворка для... Очень большую роль в популярности Joomla сыграла система шаблонов, позволяющая в считанные секунды преобразить...

Далее...

  • Prev
  • Next

Virtuemart не отправляет письма активации пользователя или заказа

7

Категории: Общие вопросы программирования в Joomla, Ошибки в Joomla и расширениях

Вы создали свой самый луший сайт интернет-магазин с использованием компонента Virtuemart. Но, осталась одна маленькая проблема: при регистрации пользователю не приходит письмо с ссылкой для активации аккаунта или заказа, в тоже время сама Joomla успешно отправляет письма.

Что же мы имеем: Компонент Virtuemart использует свой класс для отправки почты, который использует библиотеку phpmailer с классом PHPMailer.
В моем случае Joomla была настроенна на отправку почты через php функцию mail. После долгих разбирательств было выяснено, что все равботает в штатном режиме, но когда дело уже доходит до фактической отправки, функция mail выполняется с ошибкой, и возвращает результат false. Но, самое интересное, что Virtuemart не проверяет результат выполнения функции, а сообщает о том, что все замечательно.
Всё дело оказалось в 5 параметре функции mail «$additional_parameters», этот параметр используется для передачи дополнительных параметров программе, которая производит непосредственную отправку почты.

bool mail ( string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters]] )

В PHPMailer туда присваивается такое значение:

    $params = sprintf("-oi -f %s", $this->Sender);

Не в даваясь в подробности, скажу, что это правильно так и нужно делать, но не на всех хостингах это разрешено. Здесь фактически и возникает сама проблема: на хостинге запрещено использование некторых дополнительных параметров для почтовой программы, функция mail не может отправить письмо, о чем честно сообщает в возвращаемом результате, а Virtuemart безразлично ушло письмо или нет.
Для решение этой проблемы достаточно изменить выше указанную строчку в файле «libraries/phpmailer/phpmailer.php» на

//    $params = sprintf("-oi -f %s", $this->Sender);
    $params = '';

Предыдущая запись:

Следующая запись:


Комментариев 7 комментариев

Большое спасибо! Благодаря вам теперь у меня заработала активация ))

Господи!! Спасибо огромное!!))))
Вы меня просто спасли))))
не работала отправка сообщений клиенту, хоть магазин переделывай))
а благодаря вам все работает!!!!
:-*

А мне не помогло. Не приходят письма именно на почтовые ящики http://www.mail.ru С rambler все в полном порядке. Что делать не знаю(((

Спасибо огромное. Помогло. Есть правда, проблема с некоторыми конкретными почтовыми сервисами, как упомянул Opencross. На gmail.com все приходит.

Письма по прежнему не приходят подскажите что еще возможно изменить.
Спасибо!

здравствуйте! столькнился с тойже проблемой! не приходят письма подтверждения аккаунта. подскажите пожалуйста где найти те файлы которые описаны в этой теме?

Большое спасибо! На gmail и яндекс сразу всё приходило, а на mail.ru замучился искать решения. Только Ваша статья и спасла!

Добавить комментарий

Professional Responsive Joomla Templates