Тоже столкнулся с данной проблемой. Опишу по порядку.
Я установил Joomla 2.5.4 и VirtueMart 2.0.6
Столкнулся со следующей проблемой. При обычной регистрации (не через модуль Virtuemart) возникает ошибка "Не удалось
вызвать функцию mail".
После этой ошибки пользователь в Joomla создается (без активации), а письмо не приходит не администратору, не самому
пользователю об регистрации.
Когда регистрацию провожу через VirtueMart, то письма также никуда не приходят, также пользователь в Joomla создается
(без активации), но при все этом на сайте об ошибках ничего не говорится после регистрации, а говорится, что ждите
письма.
В настройках выставлены:
Способ отправки PHP mail
E-mail сайта название@название_сайта.ru (т.е. адрес почты созданный на моем сайте)
Отправитель письма Бла-бла-бла
Путь к Sendmail /usr/sbin/sendmail
Авторизация на SMTP-сервере НЕТ
Защита SMTP НЕТ
Порт SMTP-сервера 25
Имя пользователя SMTP (здесь имя пользователя для SMTP, взятое у хостинга в админ панели)
Пароль для SMTP (здесь пароль, взятое у хостинга в админ панели)
SMTP-сервер (здесь имя SMTP-сервера, взятое у хостинга в админ панели)
При все при этом если начинаю проверять, как работет PHP mail, то все ОК.
Проверяю следующим образом это:
создаю в корне сайта, где лежит index.php, фал test.php со следующим содержанием:
<?php
if (mail("моя_почта@mail.ru", "Тест сайта Занимательно", "бла бла...\nбла...бла...."))
echo 'OK';
else
echo 'ERROR';
?>
Далее набираю в интернете www.название_своего_сайта/test.php и у меня появляется слово ОК + ко всему на почту (указанную
в теде файла test.php) приходит письмо
Теперь что я предпринимал:
1. Как многие пишут
Привёл запись в файле /libraries/phpmailer/phpmailer.php к виду:
$params = sprintf("-oi -f %s", $this->Sender);
$params = '';
Итог:
При обычной регистрации ошибка "......Не удалось вызвать функцию mail", а вместо нее появилась надпись
"Учетная запись для вас была создана. На указанный при регистрации адрес электронной почты была отправлена ссылка для её активации. Обратите внимание, что необходимо активировать учетную запись, перейдя по содержащейся в письме ссылке. Только после этого вы сможете проходить авторизацию на сайте под вашим логином и паролем."
Но толку от этого никагого, письма как не приходили так и не приходят.
При регистрации через VirtueMart также появилась красивая надпись: "Ваш аккаунт был создан. Письмо со ссылкой для его активации было отправлено на указанный адрес электронной почты"
но писем никаких не пришло пользователю, а вот админу сайта письмо о зарегистрированном пользователе пришло.
После стер я стер $params = '';
2.Кто-то писал следующее(
http://nikita-sp.com.ua/blog/2012/03/не-отправляются-письма-virtuemart-2-0-x-подтвержде/), но мне не помогло:
что в файле administrator/components/com_virtuemart/models/orders.php
нужно в коде:
if(empty($data['invoice_number'])) {
//$variable_fixed=sprintf("%05s",$num_rows);
$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;
}
строку
$data['invoice_number'] = str_replace('-', '', substr(JFactory::getDate(),2,8)).substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;
сделать такой
$data['invoice_number'] = substr(md5($orderDetails['order_number'].$orderDetails['order_status']),0,3).'0'.$count;