По форме обратной связи файл feedback.php
#1
Отправлено 09 September 2011 - 09:00 PM
Во время отправки произошла ошибка! Попробуйте еще раз...
хотя сообщение нормально отправляется.
Я посмотрел код в файле заложено три вида ошибки:
код подтверждения
неправильно заполнены поля
и этот третий вид. Я понимаю, что возможна какая-то ошибка, но она толком не отрабатывается. И этот третий вариант можно удалить. Поскольку отправка происходит или нет.
Я просто устранил в коде появление этой ошибки и сейчас показывает как надо. Теперь письма уходят нормально и правильно выходят сообщения.
Кто разбирался, зачем ввели эту ошибку?
#2
Отправлено 24 September 2011 - 12:06 PM
#3
Отправлено 24 September 2011 - 03:21 PM
Когда настраивал форму обратной связи, посмотрел, что часто отправка заканчивается, сообщением:
Во время отправки произошла ошибка! Попробуйте еще раз...
хотя сообщение нормально отправляется.
Я посмотрел код в файле заложено три вида ошибки:
код подтверждения
неправильно заполнены поля
и этот третий вид. Я понимаю, что возможна какая-то ошибка, но она толком не отрабатывается. И этот третий вариант можно удалить. Поскольку отправка происходит или нет.
Я просто устранил в коде появление этой ошибки и сейчас показывает как надо. Теперь письма уходят нормально и правильно выходят сообщения.
Кто разбирался, зачем ввели эту ошибку?
А вам то зачем??? Скорей всего обработка запросов не очень высокая и авторы скрипта решили подстраховать в отправки писем ваших клиентов.
Приветствую, подскажите пожалуйста по Shopcms. Шаблон DigitalStore, при отправки через форму обратной связи пишет, что удачно. но письма в ящик не приходят(спам так же проверял), в общих настройках указано куда слать. Решил попробовать через smtp. прописал там же smtp-логин-пароль, выбрал режим отправки через smtp на форме вываливается ошибка "невозможно отправить" Не знаю куда копать...
Адрес сайта пожалуйста в ЛС напишите или замените фаил обратной связи стандартным
#4
Отправлено 24 September 2011 - 09:08 PM
Просто у меня при отправке показывало, что произошла ошибка Во время отправки произошла ошибка! Попробуйте еще раз...А вам то зачем??? Скорей всего обработка запросов не очень высокая и авторы скрипта решили подстраховать в отправки писем ваших клиентов.
А письма нормально отправляются, вот я и выкинул формирование этого сообщения об этой ошибке. Сделал как реализовано в вопрос по товару и сообщение дискусии и все нормально работает. Так хотел знать, что за ошибка такая и чего мне писало то сообщение, хотя отправка происходила. Может есть подводный камень?
#5
Отправлено 25 September 2011 - 12:08 AM
#6
Отправлено 22 March 2015 - 10:58 AM
у меня на сайте выскакивает такое сообщение. При этом сообщение не отправляется. Можете помочь устранить эту ошибку?Во время отправки произошла ошибка! Попробуйте еще раз...
http://мойаромат.рф/feedback.html
#7
Отправлено 22 March 2015 - 11:25 AM
у меня на сайте выскакивает такое сообщение. При этом сообщение не отправляется. Можете помочь устранить эту ошибку?Во время отправки произошла ошибка! Попробуйте еще раз...
http://мойаромат.рф/feedback.html
Прежде всего проверьте в настройках магазина, указали ли Вы корректный e-mail в поле Основной email адрес магазина
если да, то найдите в файле core/includes/feedback.php два вхождения кода $smarty->assign("error",3); и самое простое и быстрое замените 3 на 4.
И попробуйте отправку, вроде если не изменяет память, будет нормально отправляться. Только не забудьте сбросить кэш магазина после исправления.
#8
Отправлено 22 March 2015 - 03:29 PM
код там такой:
if (preg_match("/^[_\.a-z0-9-]{1,20}@(([a-z0-9-]+\.)+(com|net|org|mil|edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})$/is",
$_Email))
{
$mail->ClearAddresses();
$mail->AddAddress($_Email, '');
return $mail->Send();
}
else return false;
т.е. либо какие-то проблемы с парсингом email (адрес не удовлетворяет регулярному выражению), либо функция Send() вернула false.
Ну а false эта функция возвращает в довольно большом количестве случаев. Если дело именно в ней, а не в "плохом" email, то надо смотреть состояние переменной $mail->ErrorInfo после выполнения $mail->Send(), там будет информация об ошибке (ошибках).
PS. Например, исходя из вышеуказанного регулярного выражения username (то, что до знака @) не может быть больше 20 символов. А вообще начиная с PHP 5.2.0 валидация емейла с помощью самописной регулярки нафиг не нужна, т.к. появилась функция filter-var - https://php.net/manu....filter-var.php
#9
Отправлено 22 March 2015 - 04:48 PM
Функция Send() не отрабатывает если проблема с полями и работой функции mail(), что скорее всего связано с хостингом. Еще причина бывает:заполняются поля в настройках сайта для работы с smtp - логин и пароль, а ниже забывают выбрать Способ отправки почты, так остается выбранный mail или наооброт, отсюда и нет отправки.
Причем на одних хостингах такую ошибку не показывает, а на других есть, даже при одинаковых версиях php, скорее всего это связано с индивидуальными настройками хостинга. В большинстве случаев при корректном указании e-mail как отправителя, так и e-mail магазина, происходит отправка писем, но генерируется сообщение в шаблоне это сообщение: Во время отправки произошла ошибка! Попробуйте еще раз..., достаточно исправить цифру 3 на 4 или любую другую > 3 и указанное сообщение не будет попусту показываться.
#10
Отправлено 22 March 2015 - 06:16 PM
Какой смысл гадать на кофейной гуще в стиле "скорее всего трам-пам-пам"?Скорее всего здесь не в адресе отправителя e-mail дело
Что при этом было в $mail->ErrorInfo? Ведь это важно и ключ к пониманию проблемы.
Можно вообще убрать сообщения об ошибках и их как бы не будет .достаточно исправить цифру 3 на 4 или любую другую > 3 и указанное сообщение не будет попусту показываться.
Если класс phpmailer выдает какую-то ошибку, то правильнее с ней разобраться, а не отключать диагностику.
Очевидно, что в общем случае наличие ошибки не означает, что email не отправлен, но ведь у спрашивающего как раз обратная ситуация - письма НЕ ОТПРАВЛЯЮТСЯ. Причин, увы, в случае работы с почтой ОЧЕНЬ много и давать какие-то рекомендации исходя из двух фактов "не отправляется" и "Выдается сообщение 'бла-бла-бла'" я бы поостерегся. Надо КАК МИНИМУМ получить текст из $mail->ErrorInfo.
#11
Отправлено 22 March 2015 - 07:23 PM
Человек попросил о помощи а сам не отвечает, мы ж не знаем вводные условия, может там действительно адрес не указан или неправильно прописан. Или там smtp до конца не настроено селектором. Поэтому и написал посмотреть адрес и если отправляет и пишет ошибку просто её убрать показ так или из шаблона убрать. Я не встречал еще никого, у которого вообще не отправляются письма при правильных настройках из скрипта этого магазина.
#12
Отправлено 22 March 2015 - 07:52 PM
Что там моделировать?Да, если смодулировать ситуацию, когда можно посмотреть ошибку $mail->ErrorInfo
Это же не раз в год случайная отправка емейла, а без проблем повторяемый фидбэк, который можно и самому заполнить-отправить для проверки. А состояние $mail->ErrorInfo лично я бы смотрел вставкой
$f=fopen('1.txt','w');
fwrite($f,var_export($mail->ErrorInfo,true)."\n");
fclose($f);
после вызова $mail->Send(). В корне сайта создастся файл 1.txt с содержимым $mail->ErrorInfo.
Собственно, столько вариантов увидеть этот самый ErrorInfo, что глаза разбегаются.
Ну да, ну да... "Благими ... вымощена..."Главное письма отправляются. Просто здесь не стоит задача найти ошибку скрипта и отладить.
Не стоит, как мне кажется, подводить теоретическую базу под банальное нежелание выяснить причину ошибки и устранить ошибку. Это не правильно. Возможно, это подходит для себя лично, когда известны все вводные, но советовать это другим участникам форума как-то нехорошо.
Это да, тут согласен. Я в основном для него и писал конкретику.Человек попросил о помощи а сам не отвечает, мы ж не знаем вводные условия
Или еще кому-нибудь пригодится.
#13
Отправлено 22 March 2015 - 10:03 PM
Да отлавливать надо у того у кого эта проблема возникает, я тоже обычно таки образом логи пишу, где надо понаблюдать хронику работы скрипта. открыл файл и там все видно, еще время пишу для удобства анализа, если нет другого варианта отображения времени записей в лог.Это же не раз в год случайная отправка емейла, а без проблем повторяемый фидбэк, который можно и самому заполнить-отправить для проверки. А состояние $mail->ErrorInfo лично я бы смотрел вставкойДа, если смодулировать ситуацию, когда можно посмотреть ошибку $mail->ErrorInfo
$f=fopen('1.txt','w');
fwrite($f,var_export($mail->ErrorInfo,true)."\n");
fclose($f);
после вызова $mail->Send(). В корне сайта создастся файл 1.txt с содержимым $mail->ErrorInfo.
Собственно, столько вариантов увидеть этот самый ErrorInfo, что глаза разбегаются.