*

Yuraz

  • *
  • 17

Проблема с почтой на локальном компе

Добрый день!

Просмотрел все темы, такого обсуждения не нашел...
Установил 2.3.4 на локальный Apachi под XAMPP (Win 8.1), все отрабатывает нормально.
Единственная проблема, что никуда не уходят письма. Ни покупателю, ни админу.
Менял параметры в админке (Способ отправки SMTP/sendmail), менял ящики (mail, yandex, gmail) - результата нет.
В логах XAMPP нашел отсутствие каталога (\XAMPP\tmp\sendmail) - создал, туда начали генериться сообщения... Но все равно ничего не отправляется...

Есть где-нибудь описание настройки почты (можно на английском) ?
Что можно еще посмотреть/настроить, какие логи еще есть чтобы понять ?
Какова вероятность, что после заливки на хост эта проблема уйдет ?

*

Spido

  • *
  • 1634

Письма не будут отправляться без утановленного, на локальном сервере, почтового сервера.

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Yuraz

  • *
  • 17

Т.е. при выборе хостера необходимо обратить внимание на поднятый почтовый сервер. Спасибо.

*

Spido

  • *
  • 1634

Нужно обратить внимание, чтобы почтовый сервер был доступен к подключению по sendmail, а не по SMTP, иначе магазин не будет отправлять письма.
Но по sendmail вас будут хостеры постоянно ограничивать или блокировать и от этого будет страдать проект.
Если нужно подключить по SMTP, тогда нужно установить и настроить дополнение для osCommerce, чтобы подключение работало как без защищенного соединения по 25-тому порту, так и по защищенному соединению по 465-му и по 587 ssl/tls.
Или использовать osCommerce Titanium, там уже всё есть и настроено.

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Yuraz

  • *
  • 17

Добрый день!

Переехал на хостинг (пока бесплатный)... Как и предполагалось, почта не отправляется...
Служба поддержки хостинга пишет: sendmail поддерживается на бесплатном тарифном плане.
Но для WordPress отправка писем любым способом на бесплатном тарифном плане заблокирована.

Насколько я понял, oscommerce не использует wordpress ?
В чем тогда может быть проблема ?
Есть какие-нибудь логи с ошибками ? Где посмотреть ?

Нашел один из логов: php_mail.log
Последние 2 строки выглядят так:
[15-Aug-2016 23:06:42 Asia/Krasnoyarsk] mail() on [/home/xxx/public_html/admin/includes/classes/email.php:522]: To: "Василий Пупкин" <[email protected]> -- Headers: From: xxx.ru <[email protected]> MIME-Version: 1.0 X-Mailer: osCommerce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit
[15-Aug-2016 23:06:42 Asia/Krasnoyarsk] mail() on [/home/xxx/public_html/admin/includes/classes/email.php:522]: To: "Иван Иванов" <[email protected]> -- Headers: From: xxx.ru <[email protected]> MIME-Version: 1.0 X-Mailer: osCommerce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit

Т.е. Ошибок, вроде, нет...

Во вложении мои настройки E-Mail через админку.

*

Spido

  • *
  • 1634

Это может быть связано с заполнением поля "From:".
Перейдите в Админка - Настройки - Магазин - E-Mail От.
В поле E-Mail От пропишите только Е-маил, без кавычек и прочих текстов. Только Е-маил.
Например, в демоверсии прописано:

Цитировать
"Demo Normal" <[email protected]>
замените на:
Цитировать
[email protected]

Е-маил прописывайте свой конечно.
После этого попробуйте отправить какое-либо письмо, для проверки.

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Yuraz

  • *
  • 17

Заменил...
Теперь в логах вот так:
[17-Aug-2016 12:25:45 Asia/Krasnoyarsk] mail() on [/home/xxx/public_html/includes/classes/email.php:522]: To: Yury <[email protected]> -- Headers: From: "Alameda" <[email protected]> MIME-Version: 1.0 X-Mailer: osCommerce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit

Письма не доходят...

"Alameda" берется из поля "Владелец магазина"

*

Spido

  • *
  • 1634

Тогда в поле Владелец магазина пропишите только ваш Email.

Это причуды настроек почтового сервера на хостинге.

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Yuraz

  • *
  • 17

Прописал - не работает...

Админ хостера дал вот такой скрипт для теста... Работает...

<html>
<body>

<?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
{
//send email
$email = $_REQUEST['email'] ;
$subject = "Mail test" ;
$server = $_SERVER['HTTP_HOST'];
$message = "If you got this message, mail sending from $server is working fine
(Здесь есть изображение, скрытое от гостей. Для просмотра зарегистрируйтесь или залогиньтесь)
" ;
mail( "$email", "$subject",
$message, "From: mailtest@" . $_SERVER['HTTP_HOST'] );
echo "Message has been sent to $email";
}
else
//if "email" is not filled out, display the form
{
$server = $_SERVER[HTTP_HOST];
echo "<h1>Mail test from $server</h1>
<form method='post' action='" . $_SERVER['PHP_SELF'] . "'>
Enter Your Email: <input name='email' type='text' /><br /><br />
<input type='submit' name='Submit' value='Submit' />
</form>";
}
?>

</body>
</html>

*

Spido

  • *
  • 1634

1. На этапе установки, на локальный компьютер, делали почтовую заглушку для sendmail, которая есть в инструкции здесь http://oscommerce.ru/documentation/oscommerce-v-2-3/pervie-shagi/ustanovka-na-vash-komputer.html ?
В php.ini тоже переносили строку:

Цитировать
sendmail_path = C:\xampp\php\php.exe c:\xampp\sendmail\sendmail.php
Или нет?
Как сейчас выглядит переменная sendmail_path в файле php.ini, на хостинге?

2. Какие данные приходят в письме, когда отправляете письмо скриптом?
Перечислите все поля и данные.

3. mail.ru может блокировать письма из за малейших отклонений от стандарта заполнения полей письма. Создайте почтовый ящик на яндексе и попробуйте его использовать вместо [email protected]. А то у вас какие-то непонятки с [email protected] и с [email protected].

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Spido

  • *
  • 1634

Разве е-маил может иметь символы http://?
Какие-то странные настройки.
Вряд ли smtp-сервер пропустит такое письмо.

Вы должны понять, что с движком oscommerce всё в порядке. Тысячи людей пользуют и не испытывают проблем.
Результативней будет сменить хостинг.

Если вам помогли, то не стесняйтесь отблагодарить донатом:
*

Yuraz

  • *
  • 17

Выяснил причину...
Вместо этой строки:
return mail($to, $subject, $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));

надо писать:
return mail("$to", "Любая тема но прописана явным образом", $this->output, 'From: '.$from.$this->lf.implode($this->lf, $this->headers).$this->lf.implode($this->lf, $xtra_headers));

Разницу вижу в кавычках полей to и subject...
Без кавычек не работает, тему надо прописывать явным образом...
в чем проблема - не знаю, но работает...
Может, знатоки подскажут ?