Блог о заработке, seo, joomla и не только...
Вы сделали свой интернет-магазин на Virtuemart. Но, осталась одна проблема: при регистрации пользователю не приходит письмо активации аккаунта или заказа, в тоже время сама Joomla успешно отправляет письма.
Давайте решить данную проблему. Всем известный компонент Virtuemart использует свой класс для отправки почтовых писем, который использует библиотеку phpmailer. Изначально Joomla настроенна на отправку почтовых писем через php функцию mail.
Вот интересно, всё работает нормально до тех пор когда дело доходит до фактической отправки, функция mail выполняется с ошибкой, и возвращает false. Наш любимый Virtuemart не проверяет результат выполнения, а сообщает что все замечательно.
Вся проблема в пятом параметре функции 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
=
''
;
После завершения изменении, почта будет работать как надо. Надеюсь у Вас всё получится в противном случае готов рассмотреть ваши вопросы.
Комментарии
1. кнопка закрыть - не работает. Не знаю, где поменять это(буду очень признателен за помощь.
2. письма не отправляются. Уже и менял файл phpmailer и в настройках магазина и джумлы адреса ставил, и в домене делал, чтобы вся почта пересылалась на адрес.
Помогите пожалуйста
И в "Статус заказа по умолчанию для отправки эл.письма покупателю" добавить "В ожидании"
Тоже самое сделать и в "Статус заказа по умолчанию для отправки эл.письма продавцу"
После добавления "В ожидании", письма отправляются сразу после подтверждения заказа в корзине.
Странно, многим рекомендую данный фикс, вроде у всех все нормально.
Пишете подробнее, какие php ошибки получились.
RSS лента комментариев этой записи