Проблема :
Не доходят письма Админу с вопросом о товаре
Решение :
В файле
administrator\components\com_virtuemart\classes\ps_communication.php
ищем строки
if (ORDER_MAIL_HTML == '0') {
// Письмо покупателю
vmMail( $vendor_email, $dbv->f("vendor_name"), $shopper_email, $shopper_subject, $shopper_msg, "" );
// Письмо продавцу
vmMail($shopper_email, $shopper_name, $vendor_email, $vendor_subject, $vendor_msg, "" );
Только имейте в виду, что каменты мной русифицированы
Если вы в свой файл внесёте хоть одну русскую букву - не забудьте перекодировать его в UTF-8.
Так вот, там, где // Письмо продавцу в качестве адреса отправителя указан адрес человека, который делал запрос (vmMail($shopper_email,), а через его почту Joomla не сможет отправить сообщение, хотя бы потому, что для этого надо иметь пароль от чужого ящика.
Меняем последнюю строчку на
vmMail( $vendor_email, $shopper_name, $vendor_email, $vendor_subject, $vendor_msg, "" );
Это относится к тем, у кого настроена отправка писем в текстовом формате.
С форматом писем в HTML мне разбираться лень, но там возможна аналогичная ошибка - смотрите сами чуть ниже в том же файле.
Формат писем устанавливается так : Админка - Компоненты - VirtueMart - Настройки, закладка "Общие настройки", бокс "Дополнительные настройки", пункт "Формат письма".
PS : у меня VirtueMart 1.1.5 stable на Joomla! 1.5.20 Stable
< Предыдущая | Следующая > |
---|
Комментарии
может есть какие еще варианты. И как можно локализовать проблему?
строка 223 возможно
было:
$vendor_mail = vmMail( $shopper_email, $shopper_name, $vendor_email, $vendor_subject , $body,
$vendor_msg, true, null, null, $EmbeddedImages );
стало:
$vendor_mail = vmMail( $vendor_email, $shopper_name, $vendor_email, $vendor_subject , $body,
$vendor_msg, true, null, null, $EmbeddedImages );
На большинстве хостингов стоит ограничение времени между двумя отправками писем с почтового сервера.
Супротив спама мера, да и сервер чтоб не грузить излишне. А в скрипте ps_checkout.php, как и в коммьюникейшн,
и еще, возможно, где то отправка идет подряд, вот и видно сразу у какого хостера серваки шустрые а у какого нет.
Вот ваша задача узнать у хостера сколько стоит задержка у вашего сервера.
У меня стоит в 0,3 секунды - потому код поправил так (можно прописать и 0,3 конечно - но я жадный).
Файл ВМ ps_checkout.php
Вставляем usleep(400000); в два места.
Первое:
// Mail receipt to the shopper
vmMail( $from_email, $mosConfig_from name, $shopper_email, $shopper_subjec t, $msg, "" );
usleep(400000);
$msg = $vendor_header . $shopper_messag e . $vendor_footer;
// Mail receipt to the vendor
vmMail($from_em ail, $mosConfig_from name, $vendor_email, $vendor_subject , $msg, "" );
и второе
$shopper_mail = vmMail( $from_email, $mosConfig_from name, $shopper_email, $shopper_subjec t, $shopper_mail_B ody, $shopper_mail_A ltBody, true, null, null, $EmbeddedImages );
usleep(400000);
$vendor_mail = vmMail( $from_email, $mosConfig_from name, $vendor_email, $vendor_subject , $vendor_mail_Bo dy, $vendor_mail_Al tBody, true, null, null, $EmbeddedImages , null, $shopper_email) ;
Все будет стрелять. При любых методах отправки - я юзаю например ПХПмейл.