Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Письмо строго по SMTP, Нужна помощь 
:(
    Опции темы
zone51
  Дата 26.7.2006, 00:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 370
Регистрация: 17.2.2006

Репутация: нет
Всего: 1



Товарищи, помогите кто чем может, надо послать письмо с аттачем (HTML) на ящик, НО! используя только сокеты и SMTP. Юзаю Small Http Server пишу так:

Код

$fp = fsockopen ("localhost", 25, $errno, $errstr);
  if(!$fp)echo $errstr;
  else {
    fputs($fp, "HELO localhost\r\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "MAIL FROM:Oleg@localhost\n");     
    echo "eto mail from  ";
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "RCPT TO: nobody@localhost\n");
    echo "eto rcpt to  ";     
    echo fread($fp,200);
    echo "<br>";
    /*fputs($fp, "DATA\r\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "Content-Type: text/plain; charset=UTF-8\n");    
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "From: Oleg\n");    
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "To: Mike\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "Subject: Hello\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "\n\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "Hello\r\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, ".\r\n");     
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "RSET\r\n");    
    echo fread($fp,1024);
    echo "<br>";
    fputs($fp, "QUIT\r\n"); 
    echo fread($fp,1024);
    echo "<br>";*/


причем происходит какая то чушь: конект к сервауку есть, приглащение выдает. Но вот в пхп якобы сервак отвечает что понял откуда письмо( mail from) а  в логах сервака записи нет. И вообще очень сильно ругается что не понимает кто и кому пересылает письма . Как ни крутил пхп.ини, имена, никак. Подсажите какой самый распространенный сервак для смтп с поддержкой пхп? скачал Argosoft сервер, но там нет поддержки пхп. Помогите пожалста. Огромное спасибо. 


--------------------
The truth is out there
PM MAIL   Вверх
Twirl
Дата 28.7.2006, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



1. Ставь везде в конце строк \r\n - на всякий случай
2. В "MAIL FROM" и "RCPT TO" адрес должен быть в угловых кавычках, т.е. "MAIL FROM: <[email protected]>"
3. В заголовках To и From возможны варианты:
Код
имя <адрес>
 (если указано имя, адрес в угловых скобках)
либо
Код
адрес
 (если имя не указано, адрес без угловых скобок)
Причем многие серваки требуют совпадения адресов в "MAIL FROM" с From, и "RCPT TO" с To 
PM MAIL   Вверх
Talalayev
  Дата 28.7.2006, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.7.2006

Репутация: нет
Всего: нет



Twirl, 
Цитата

 Ставь везде в конце строк \r\n - на всякий случай

не помогает
Цитата

В "MAIL FROM" и "RCPT TO" адрес должен быть в угловых кавычках, т.е. "MAIL FROM: <[email protected]>"

Это я уже исправил. Но теперь фигня: в логах сервера только факт успешного подключения, но даже HELO не доходит. В чем проблема?Спасибо.
Цитата

$sp = fsockopen ("localhost",25,$errno, $errstr);
  if(!$sp)echo $errstr;
  else {
   //Начинаем передачу письма
   fputs($sp, "HELO localhost\r\n");
   echo $errstr;
   fputs($fp, "MAIL FROM:<[email protected]>\n");
   fputs($fp, "RCPT TO:<[email protected]>\n");
   fputs($fp, "DATA\n");
   fputs($fp, "From: Oleg\n");
   fputs($fp, "To: Mike\n");
   fputs($fp, "Subject: Hello\n");
   fputs($fp, "Content-Type: text/plain; charset=UTF-8\n");
   fputs($fp, "\n\n");
   fputs($fp, "Hello\r\n");
   fputs($fp, ".\r\n");
   fputs($fp, "RSET\r\n");
   fputs($fp, "QUIT\r\n");
   fclose($sp);
  }

Сервер:
Цитата

ÿØ
!-<28/07 20:54:28 [127.0.0.1:2026<25] (t2 154) <220 shttp.srv Simple Mail Transfer Service Ready

!->28/07 20:54:28 [127.0.0.1:2026>25] (t2 155) 
Error: Timeout

 smile   

зы. У меня прсто та же проблема.
 

Это сообщение отредактировал(а) Talalayev - 28.7.2006, 21:17
PM MAIL   Вверх
Twirl
Дата 29.7.2006, 07:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



В общем, могу посоветовать еще, во-первых, ставить пробел между MAIL FROM и адресом, а во-вторых после каждой отправленной команды читать из сокета сообщения сервера. Лично я делал функцию SendString:
Код

public function SendString ($Socket, $String)
{
    fwrite($Socket, $String);
    $Answer = fread ($Socket,2048);
    return $Answer;
}

Заработать, возможно, и не заработает, но будет видно, что тебе отвечает сервер и на каком этапе выплевывает. Кстати, сервер точно поддерживает посылку сообщений без авторизации? 
PM MAIL   Вверх
Talalayev
Дата 29.7.2006, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 27.7.2006

Репутация: нет
Всего: нет



Twirl, 
Цитата

Кстати, сервер точно поддерживает посылку сообщений без авторизации? 

ессно, это же Small http server, я все колбашу на локалхосте. Какая тут авторизация?
Цитата

 а во-вторых после каждой отправленной команды читать из сокета сообщения сервера.

+1000. Все заработало, только ругается на формат письма. Аутлук и зэ бат не могут его открыть. 
Цитата

Received: from [email protected] (localhost [127.0.0.1]) Sat, 29 Jul 2006 05:49:14 GMT
From: Oleg
To: Mike
Subject: Hello
Content-Type: text/plain; charset=UTF-8

Hello


Что за...?  smile Спасибо огромное. 
PM MAIL   Вверх
Twirl
Дата 30.7.2006, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 28.7.2006

Репутация: нет
Всего: нет



Поскольку сейчас я не на работе, могу только предполагать:
1. Сделай нормальный формат From и To: имя <мыло>
2. По-моему, кодировку нужно писать в кавычках "utf8" 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.