Перейти к публикации

Ошибка при работе с почтовым сервером


Рекомендованные сообщения

Домен: odlar-yurdu.ru

Версия DataLife Engine: 6.3

Тип лицензии скрипта: Лицензия активирована

Итак. Настроил, сайт работает, но везде где требуется работа с почтовым сервером возникает ошибка:

This SMTP server does not support authorisation

Сервер почты не мой, а хостера, сам сайт на моем серваке (почта другом, потому что влом разбираться с настройками и спамом, и открывать дополнительную уязвимость сервера).

У хостера авторизация включена, это 100%. Mozilla нормально почту отправляет с авторизацией. Но DLE отказывается. Пробовал оба метода при SMTP возникает вышеуказанная ошибка, при PHP mail(); пишет что все удачно отправил, но на самом деле ничего на тестовый ящик не приходит (отправленное Mozillой приходит сразу).

Подглядел код и решил вручную попробовать telnet'ом. В файле mail.class.php следующий порядок:

$this->smtp_send_cmd("HELO ".$this->smtp_host);

....

$this->smtp_send_cmd("AUTH LOGIN");

Результат:

telnet> open

(to) mail.odlar-yurdu.ru 25

Trying 89.108.67.148...

Connected to mail.odlar-yurdu.ru.

Escape character is '^]'.

220-cp118.agava.net ESMTP Exim 4.63 #0 Mon, 22 Oct 2007 20:16:48 +0400

220-We do not authorize the use of this system to transport unsolicited,

220 and/or bulk e-mail.

helo odlar-yurdu.ru

250 cp118.agava.net Hello odlar-yurdu.ru [217.172.17.37]

auth login

503 AUTH command used when not advertised

Значит дальше по сценарию:

if ( $this->smtp_code == 334 )

{

...

}

else

{

$this->smtp_error("This SMTP server does not support authorisation");

return;

}

Кто то нарушает протокол? Или может сервер и клиент просто говорят на разных языках? Повторю Мозилла работает нормально. Прошу помощи, ща начну ловить пакеты Mozilla, результат напишу.

Ссылка на сообщение
Поделиться на других сайтах

Значит половил пакеты, все получилось. Мзилла отправляет команду не HELO, а EHLO.

Метод тот же, тоесть SMTP. Открываем файл engine\classes\mail.class.php

Находим строку

$this->smtp_send_cmd("HELO ".$this->smtp_host);
Меняем на:
$this->smtp_send_cmd("EHLO ".$this->smtp_host);

У меня все заработало, у вас не знаю как :D

Изменено пользователем Force
Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...