Проблему решил! Ура))) столько труда, но наконец-то поправил. На всякий случай прикрепил файлы для замены.
Итак производим такие действия с бубном:
в файле administrator\components\com_virtuemart\classes\ps_communication.php
ищем строки (364 строка у меня)
if (ORDER_MAIL_HTML == '0')
и оба
vmMail заменяем на то что у меня :
// Send text email
if (ORDER_MAIL_HTML == '0') {
// Письмо покупателю
vmMail( $vendor_email, $dbv->f("vendor_name"), $shopper_email, $shopper_subject, $shopper_msg, "" );
// Письмо продавцу
vmMail( $vendor_email, $shopper_name, $vendor_email, $vendor_subject, $vendor_msg, "" );
}
Далее : в файле administrator\components\com_virtuemart\classes\ps_main.php
Ищем функцию vmCreateMail (у меня 473 строка)
в ней находим переменные (496 строка):
$mail->From = $from ? $from : $mosConfig_mail from;
и
$mail->Sender = $from ? $from : $mosConfig_mail from;
и заменяем на
$mail->From = $mosConfig_mailfrom;
$mail->Sender = $mosConfig_mailfrom;
Так как на некоторых серверах стоят временные тайминги (ограничения по времени для последовательной отправки одного письма за другим) с целью исключить рассылку спама, а VirtueMart формирует два письма сразу и пытается отправить их без задержки - то выставляем искусственную задержку в 4 мин.
Для этого нужно подправить файл: administrator\components\com_virtuemart\classes\ps_checkout.php
Ищем в нем строки (у меня 2135)
vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $msg, "" );
и ставим таймаут между отправкой писем после данной функции usleep(400000);
Должно выглядить так:
// Mail receipt to the shopper
vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $msg, "" );
usleep(400000);
$msg = $vendor_header . $shopper_message . $vendor_footer;
// Mail receipt to the vendor
vmMail($from_email, $mosConfig_fromname, $vendor_email, $vendor_subject, $msg, "" );
Далее спускаемся чуть ниже и ищем строку(стр 2251):
$shopper_mail = vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $shopper_mail_Body, $shopper_mail_AltBody, true, null, null, $EmbeddedImages);
после нее также устанавливаем тайминг.
Должно выглядить так:
$shopper_mail = vmMail( $from_email, $mosConfig_fromname, $shopper_email, $shopper_subject, $shopper_mail_Body, $shopper_mail_AltBody, true, null, null, $EmbeddedImages);
usleep(400000);
$vendor_mail = vmMail( $from_email, $mosConfig_fromname, $vendor_email, $vendor_subject, $vendor_mail_Body, $vendor_mail_AltBody, true, null, null, $EmbeddedImages, null, $shopper_email);
Вот собственно и все! после таких изменений все заработало как часы. Посмотреть можете у меня на сайте
www.recont.com.ua в любом из товаров.
Если помогло - обязательно отписывайтесь, чтобы админы смогли прикрепить тему как решенную и +++++++++ плюсуйте))))
Версия VirtueMart 1.1.8 Joomla 1.23 настройка почты через SMTP яндекса
[вложение удалено Администратором]