*

Yuraz

  • *
  • 17

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

Добрый день!

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

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

*

Spido

  • *
  • 1609

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

*

Yuraz

  • *
  • 17

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

*

Spido

  • *
  • 1609

Нужно обратить внимание, чтобы почтовый сервер был доступен к подключению по 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: "Василий Пупкин" <(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)> -- Headers: From: xxx.ru <(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)> 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: "Иван Иванов" <(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)> -- Headers: From: xxx.ru <(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)> MIME-Version: 1.0 X-Mailer: osCommerce Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit

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

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

*

Spido

  • *
  • 1609

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

Цитировать
"Demo Normal" <(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)>
замените на:
Цитировать
(здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь)

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

*

Yuraz

  • *
  • 17

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

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

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

*

Spido

  • *
  • 1609

Тогда в поле Владелец магазина пропишите только ваш 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

  • *
  • 1609

1. На этапе установки, на локальный компьютер, делали почтовую заглушку для sendmail, которая есть в инструкции здесь (здесь есть ссылка, которая гостям не доступна зарегистрируйтесь или залогиньтесь) ?
В php.ini тоже переносили строку:

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

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

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

*

Spido

  • *
  • 1609

Разве е-маил может иметь символы 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...
Без кавычек не работает, тему надо прописывать явным образом...
в чем проблема - не знаю, но работает...
Может, знатоки подскажут ?