Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 17 Ответов
  • 4563 Просмотров
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Коллеги, поставил VirtueMart 1.1.5, добавил к нему русские PHP файлы от 1.1.4.

Делаю заказ товара, приходит два письма. Одно админу, второе юзеру. Админу приходит нормальное. В формате HTML, юзеру приходит глюкалово вот такого вида (это в теле письма):

Код
?=
 =?UTF-8?B?0LfQtSAtIDM=?=
Message-ID: <b93e(blablabla)bca0@speedboy.ru>
X-Priority: 3
X-Mailer: PHPMailer (phpmailer.sourceforge.net) [version 2.0.4]
MIME-Version: 1.0
Content-Type: multipart/related;
        type="text/html";
        boundary="b1_b96936e2ee93111ee775f6f6d54dbca0"


--b1_b96936e2ee93111ee775f6f6d54dbca0
Content-Type: multipart/alternative;
        boundary="b2_b96936e2ee93111ee775f6f6d54dbca0"

--b2_b96936e2ee93111ee775f6f6d54dbca0
Content-Type: text/plain; charset = "UTF-8"
Content-Transfer-Encoding: 8bit

И ещё пара ошибок при отправке (возможно в этом суть):
Код
[Mon Aug 30 21:49:35 2010] File does not exist: /htdocs/' + ctThemeXPBase + 'darrow.png, referer: http://speedboy.ru/
[Mon Aug 30 21:50:16 2010] File does not exist: /htdocs/' + ctThemeXPBase + 'darrow.png, referer: http://speedboy.ru/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=1&category_id=3&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] PHP Notice:  Undefined property: ps_payment::$payment_code in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_checkout.php on line 1191, referer: http://speedboy.ru/index.php?page=checkout.index&payment_method_id=2&ship_to_info_id=599c59e5d6d532963474066b6a6fd21b&shipping_rate_id=standard_shipping%257C%25D0%259A%25D1%2583%25D1%2580%25D1%258C%25D0%25B5%25D1%2580%25D0%25BE%25D0%25BC%257C%25D0%2592%2B%25D1%2582%25D0%25B5%25D1%2587.%2B3-%25D1%2585%2B%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B9%257C100.00%257C1&checkout_stage=4&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] PHP Notice:  Undefined variable: mosConfig_smtpport in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_main.php on line 506, referer: http://speedboy.ru/index.php?page=checkout.index&payment_method_id=2&ship_to_info_id=599c59e5d6d532963474066b6a6fd21b&shipping_rate_id=standard_shipping%257C%25D0%259A%25D1%2583%25D1%2580%25D1%258C%25D0%25B5%25D1%2580%25D0%25BE%25D0%25BC%257C%25D0%2592%2B%25D1%2582%25D0%25B5%25D1%2587.%2B3-%25D1%2585%2B%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B9%257C100.00%257C1&checkout_stage=4&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] PHP Notice:  Undefined variable: mosConfig_smtpsecure in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_main.php on line 507, referer: http://speedboy.ru/index.php?page=checkout.index&payment_method_id=2&ship_to_info_id=599c59e5d6d532963474066b6a6fd21b&shipping_rate_id=standard_shipping%257C%25D0%259A%25D1%2583%25D1%2580%25D1%258C%25D0%25B5%25D1%2580%25D0%25BE%25D0%25BC%257C%25D0%2592%2B%25D1%2582%25D0%25B5%25D1%2587.%2B3-%25D1%2585%2B%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B9%257C100.00%257C1&checkout_stage=4&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] PHP Notice:  Undefined variable: mosConfig_smtpport in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_main.php on line 506, referer: http://speedboy.ru/index.php?page=checkout.index&payment_method_id=2&ship_to_info_id=599c59e5d6d532963474066b6a6fd21b&shipping_rate_id=standard_shipping%257C%25D0%259A%25D1%2583%25D1%2580%25D1%258C%25D0%25B5%25D1%2580%25D0%25BE%25D0%25BC%257C%25D0%2592%2B%25D1%2582%25D0%25B5%25D1%2587.%2B3-%25D1%2585%2B%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B9%257C100.00%257C1&checkout_stage=4&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] PHP Notice:  Undefined variable: mosConfig_smtpsecure in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_main.php on line 507, referer: http://speedboy.ru/index.php?page=checkout.index&payment_method_id=2&ship_to_info_id=599c59e5d6d532963474066b6a6fd21b&shipping_rate_id=standard_shipping%257C%25D0%259A%25D1%2583%25D1%2580%25D1%258C%25D0%25B5%25D1%2580%25D0%25BE%25D0%25BC%257C%25D0%2592%2B%25D1%2582%25D0%25B5%25D1%2587.%2B3-%25D1%2585%2B%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B9%257C100.00%257C1&checkout_stage=4&option=com_virtuemart&Itemid=7
[Mon Aug 30 21:51:32 2010] File does not exist: /htdocs/' + ctThemeXPBase + 'darrow.png, referer: http://speedboy.ru/index.php

не понятно, почему он не видит эти:
mosConfig_smtpport
mosConfig_smtpsecure
mosConfig_smtpport
mosConfig_smtpsecure
и главное, что почта-то уходит.
почтовик стоит на localhost. авторизация убрана.

Есть у кого мысли на данный счёт, т.к. уже всё перегуглил :(

ps: а эта чудная конструкция "+ ctThemeXPBase + 'darrow.png" вообще не ясно, откуда взялась и почему в таком виде в логах :)
« Последнее редактирование: 31.08.2010, 11:29:03 от SpeedBoy »
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #1 : 01.09.2010, 20:30:47 »
Товарищи, неужели вы бросите меня на погибель ? :)
Хотя бы примерно напишите, кто хоть приблизительно думает, в какую сторону глабли растут :))
Может ещё что-то написать про конфу ?
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #2 : 01.09.2010, 20:48:31 »
Снёс VirtueMart 1.1.5 и накатил 1.1.4
Опять же если сделать английский интерфейс, то письма приходят нормально. Если русский, то админу приходит нормальное, а покупателю кривое. Но хотя бы исчезли ошибки про mosConfig_, что не может не радовать.
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #4 : 02.09.2010, 08:23:38 »
какой Способ отправки почты выбран?

Стоит SMTP сервер.
Другой ... щас попробую. Надо раскурить, как его настроить :)
подпись
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Re: Испорченное письмо-уведомление
« Ответ #5 : 02.09.2010, 09:10:33 »
Включи отправку через PHP mail function
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #6 : 02.09.2010, 09:28:20 »
Да, через PHP function всё намана. А почему через SMTP не хочет, кто знает ? :(
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #7 : 02.09.2010, 10:05:53 »
все ошибки ушли, тока эта осталась:
PHP Notice:  Undefined property: ps_payment::$payment_code in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_checkout.php on line 1191

Спасибо, adjuster !
подпись
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #8 : 02.09.2010, 12:03:33 »
Нашёл эту багу, кстати:
http://dev.virtuemart.net/redmine/issues/107
Некто францеско написал, что мол:
Fixed:
- a missing "isset()" in ps_checkout
- a missing row for the new PayPal module in sql.virtuemart.php
I'll submit a package soon for testing.

А где именно править, не ясно :( может кто в теме, подскажите плз ...
строка 1191 выглядит так:
Код
if( $enable_processor == "Y" || stristr($_PAYMENT->payment_code, '_API' )!== false ) {

ps: я ему написал по почте, надеюсь расскажет :) выложу тут рез-т.
ps2: ндя, он сказал, что в 1.1.5 как раз это и исправлено :)
ладно, буду копаться ...
« Последнее редактирование: 02.09.2010, 14:50:38 от SpeedBoy »
подпись
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Re: Испорченное письмо-уведомление
« Ответ #9 : 02.09.2010, 15:03:21 »
А почему через SMTP не хочет, кто знает ? :(
не доступа.
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #10 : 02.09.2010, 15:15:32 »
не доступа.

неТ доступа, или не доступНа ?
Просто письма-то приходят. И админу в нормальном виде. Значит ... просто косяк где-то при отправке юзеру.
подпись
*

adjuster

  • Давно я тут
  • 786
  • 55 / 2
Re: Испорченное письмо-уведомление
« Ответ #11 : 02.09.2010, 22:53:09 »
тогда в файлах формирования через SMTP смотреть нужно.
*

SpeedBoy

  • Захожу иногда
  • 192
  • 16 / 0
Re: Испорченное письмо-уведомление
« Ответ #12 : 03.09.2010, 09:32:10 »
тогда в файлах формирования через SMTP смотреть нужно.

ладно, может кто-нить глянет как-нить ... я в PHP не силён.
главное заработало - и хорошо.

спасибочки!
подпись
*

yadrinez

  • Захожу иногда
  • 108
  • 9 / 0
Re: Испорченное письмо-уведомление
« Ответ #13 : 03.09.2010, 15:58:39 »
все ошибки ушли, тока эта осталась:
PHP Notice:  Undefined property: ps_payment::$payment_code in \\htdocs\\administrator\\components\\com_virtuemart\\classes\\ps_checkout.php on line 1191


Спасибо, adjuster !

Чтобы исправить эту ошибку. надо найти файл ps_payment.php (находиться в папке payment)
и там добавить после строки  var $classname = "ps_payment";
вот это: var $payment_code = "xxx";

будет так
Код
class ps_payment {

    var $classname = "ps_payment";
    var $payment_code = "xxx";

если используешь другой класс платежа то правь соответсвующий файл.

У меня такая фигня после перехода на 5 версию появилась
*

yadrinez

  • Захожу иногда
  • 108
  • 9 / 0
Re: Испорченное письмо-уведомление
« Ответ #14 : 03.09.2010, 16:05:39 »
А ошибка с smtp чето там связано с настройками безопасности при smtp. Но сайте на форуме официальном пару тем есть.
но я пробовал не заработало. Поэтому просто поправил файл ps_main.php
Ниже исправленная функция. В том плане исправленная, что я просто закомментил эти два параметра которые они ввели в 1.1.5.
Раньше эти два параметра $mosConfig_smtpsecure, $mosConfig_smtpport не использовались. Они нужны когда smtp сервак требует соединения по безопасному протоколу, как я понял. ИЛи хз.

Код
function vmCreateMail( $from='', $fromname='', $subject='', $body='' ) {
global $mosConfig_absolute_path, $mosConfig_sendmail;
global $mosConfig_smtpauth, $mosConfig_smtpuser;
global $mosConfig_smtppass, $mosConfig_smtphost;
//global $mosConfig_smtpsecure, $mosConfig_smtpport;
global $mosConfig_mailfrom, $mosConfig_fromname, $mosConfig_mailer;

$phpmailer_classname='phpmailer';
if( file_exists( $mosConfig_absolute_path . '/libraries/phpmailer/phpmailer.php') ) {
$phpmailer_path = $mosConfig_absolute_path . '/libraries/phpmailer/phpmailer.php';
}elseif( file_exists( $mosConfig_absolute_path . '/includes/phpmailer/class.phpmailer.php')) {
$phpmailer_path = $mosConfig_absolute_path . '/includes/phpmailer/class.phpmailer.php';
$phpmailer_classname = 'mosphpmailer';
}
require_once( $phpmailer_path );
if( class_exists( $phpmailer_classname )) {
$mail = new $phpmailer_classname();
}
$phpmailer_path = dirname( $phpmailer_path );
$mail->PluginDir = $phpmailer_path .'/';
$mail->SetLanguage( 'en', $phpmailer_path . '/language/' );
$mail->CharSet = vmGetCharset();
$mail->IsMail();
$mail->From = $from ? $from : $mosConfig_mailfrom;
$mail->FromName = $fromname ? $fromname : $mosConfig_fromname;
$mail->Sender = $from ? $from : $mosConfig_mailfrom;
$mail->Mailer = $mosConfig_mailer;

// Add smtp values if needed
if ( $mosConfig_mailer == 'smtp' ) {
$mail->SMTPAuth = $mosConfig_smtpauth;
$mail->Username = $mosConfig_smtpuser;
$mail->Password = $mosConfig_smtppass;
$mail->Host = $mosConfig_smtphost;
//$mail->Port = $mosConfig_smtpport;
//$mail->SMTPSecure = $mosConfig_smtpsecure;
} else

// Set sendmail path
if ( $mosConfig_mailer == 'sendmail' ) {
if (isset($mosConfig_sendmail))
$mail->Sendmail = $mosConfig_sendmail;
} // if
if( $subject ) {
$mail->Subject = vmAbstractLanguage::safe_utf8_encode( $subject, $mail->CharSet );
}
if( $body) {
$mail->Body = $body;
}
// Patch to get correct Line Endings
switch( substr( strtoupper( PHP_OS ), 0, 3 ) ) {
case "WIN":
$mail->LE = "\r\n";
break;
case "MAC": // Mac OS9
$mail->LE = "\r";
break;
case "DAR": // Mac OSX
default: // change nothing
break;
}
return $mail;
}
*

loginbox

  • Захожу иногда
  • 72
  • 15 / 0
Re: Испорченное письмо-уведомление
« Ответ #15 : 14.09.2010, 17:48:14 »
var $payment_code = "xxx";
а можете подсказать что это означает, почему вылазит эта ошибка
История пишется царями, переписывается мошенниками, а изучается неудачниками...
*

yadrinez

  • Захожу иногда
  • 108
  • 9 / 0
Re: Испорченное письмо-уведомление
« Ответ #16 : 17.09.2010, 11:35:31 »
Как я понял в каждом классе плтежей должна быть объявлена задана эта переменная - $payment_code
А в классе class ps_payment она не объявлена и не задана.
А все обычно этот класс выбирают при создании способа платежа.
А для чего она нужна не выяснял.
*

rusty.beard

  • Новичок
  • 1
  • 0 / 0
Re: Испорченное письмо-уведомление
« Ответ #17 : 16.01.2012, 23:42:01 »
Как я понял в каждом классе плтежей должна быть объявлена задана эта переменная - $payment_code
А в классе class ps_payment она не объявлена и не задана.
...
Рискну предположить, что код должен быть "COD", т.е. (Cash on Delivery - см.настройки этого метода в VM).
Значит добавляемая строка будет иметь вид:
var $payment_code = "COD";
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не отправляется письмо из формы &quot;Задать вопрос по товару&quot;

Автор shellydes

Ответов: 3
Просмотров: 322
Последний ответ 25.10.2018, 23:47:08
от shellydes
Не отправляется письмо покупателю VirtueMart

Автор MaxKhal

Ответов: 0
Просмотров: 523
Последний ответ 06.02.2017, 18:40:07
от MaxKhal
Уведомление хозяина сайта при заказе

Автор tiensrus

Ответов: 3
Просмотров: 1368
Последний ответ 21.10.2013, 14:16:05
от ZAIRA
Произвольный текст в письмо о заказе

Автор sa1981

Ответов: 0
Просмотров: 577
Последний ответ 22.05.2013, 23:49:46
от sa1981
в VirtueMart не приходит письмо, если выбрано на товаре "задать вопрос по данному товару"

Автор ignatievdm

Ответов: 11
Просмотров: 6077
Последний ответ 22.12.2012, 16:31:10
от jury75