PHP; fsockopen() ;

Модератор: Злобный

Ответить
Аватара пользователя
Seven
Продвинутый
Сообщения: 350
Зарегистрирован: Ср янв 22, 2003 01:59
Откуда: аттуда

Сообщение Seven »

кто -нибудь может запостить реальный пример отправки почты через fsockopen() ??
например на mail.ru

или реальную ссылку тока не PEAR , уже смотрю код
пацан один с форума пробовал мне на мыло послать, - нифига
и телнетом тоже не пашет

кто-то ваще посылал почту так? или тока mail()

[off]добавлено спустя 1 минуту:[/off]

я имею в виду не с етого форума а с РНР-шного пытались, говорят
какие-то глюки с mail.ru
Аватара пользователя
x
Продвинутый
Сообщения: 957
Зарегистрирован: Вт янв 07, 2003 10:15

Сообщение x »

сам тока через майл слал()

про фсокопен, гугль вот что выдал:

http://www.sourceshock.com/details_snippet.php?id=46
http://php.net/mail http://php.net/function.mail (в комментах)
Аватара пользователя
Seven
Продвинутый
Сообщения: 350
Зарегистрирован: Ср янв 22, 2003 01:59
Откуда: аттуда

Сообщение Seven »

x писал(а):сам тока через майл слал()

про фсокопен, гугль вот что выдал:

http://www.sourceshock.com/details_snippet.php?id=46
http://php.net/mail http://php.net/function.mail (в комментах)
сенкс, ща посмотрю но мой интуишн подсказывает что не получится..

ппробую на другой адрес но там авторизация, а ето уже c PEAR попробовать надо
так как не помню я кода с авторизацией
Аватара пользователя
Seven
Продвинутый
Сообщения: 350
Зарегистрирован: Ср янв 22, 2003 01:59
Откуда: аттуда

Сообщение Seven »

x,
пасиба тебе большое, забыл ответить

хороший код на php_net в user comments )
вечно забываю зайти и посмотреть онлайн комменты

тока вот гемор ето посылать почту через fsockopen ))
Pro
Новичок
Сообщения: 5
Зарегистрирован: Пн июн 16, 2003 03:03

Сообщение Pro »

Код: Выделить всё

<?php

   $handle = smtp_connect($smtp_server, 25, 30, 1, 1, 1);
   echo smtp_command($handle, "EHLO $domain\r\n", 1, 1);
   echo smtp_command($handle, "MAIL FROM:<$from_mail>\r\n", 1, 1);
   echo smtp_command($handle, "RCPT TO:<$to_mail>\r\n", 1, 1);
   echo smtp_command($handle, "DATA\r\n", 1, 1);
   echo smtp_command($handle, "$message\r\n.\r\n", 1, 1);
   // don't do it like this - it will hang up
   // echo smtp_command($handle, "$message", 1, 1);
   // echo smtp_command($handle, "\r\n.\r\n", 1, 1);
   echo smtp_command($handle, "QUIT\r\n", 1, 1);
   smtp_close($handle); 
   
   
   function smtp_connect($host, $port, $timeout=30, $echo_command=False, $echo_response=False, $nl2br=False)
   {
       $errno = 0;
       $errstr = 0;
       if($echo_command)
       {
           if($nl2br) { echo nl2br("CONNECTING TO $host\r\n"); }
           else { echo "CONNECTING TO $host\r\n"; }
       }
       $handle = fsockopen($host, $port, $errno, $errstr, $timeout);
       if(!$handle)
       {
           if($echo_command)
           {
               if($nl2br) { echo nl2br("CONNECTION FAILED\r\n"); }
               else { echo "CONNECTION FAILED\r\n"; }
           }
           return False;
       }
       if($echo_command)
       {
           if($nl2br) { echo nl2br("SUCCESS\r\n"); }
           else { echo "SUCCESS\r\n"; }
       }
       $response = fgets($handle,1);
       $bytes_left = socket_get_status($handle);
       if ($bytes_left > 0) { $response .= fread($handle, $bytes_left["unread_bytes"]); }
       if($echo_response)
       {
           if($nl2br) { echo nl2br($response); }
           else { echo $response; }
       }
       return $handle;
   }

   function smtp_command($handle, $command, $echo_command=False, $nl2br=False)
   {
       if($echo_command)
       {
           if($nl2br) { echo nl2br($command); }
           else { echo $command; }
       }
       fputs($handle, $command);
       $response = fgets($handle,1);
       $bytes_left = socket_get_status($handle);
       if ($bytes_left > 0) { $response .= fread($handle, $bytes_left["unread_bytes"]); }
       if($nl2br) { return nl2br($response); }
       else { return $response; }
   }
   
   function smtp_close($handle)
   {
       fclose($handle);
   }
?>
[/code]
Аватара пользователя
Seven
Продвинутый
Сообщения: 350
Зарегистрирован: Ср янв 22, 2003 01:59
Откуда: аттуда

Сообщение Seven »

Pro,

а ты запускал етот код?
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

привет вот код работает 100 прочентов сам юзаю и написал

Код: Выделить всё


<?
function s($d,$s)
{
	if($s)
	{
		fwrite($s,$d."\r\n",strlen($d)+2);
	}
}
/**

 * $mess само сообщениеее
 * $smtp_server сервер smtp например smtp.bk.ru
 * $from мыло отправителя
 * $to мыло адресата
 * @desc шлёт мыло через смтп
*/
function ree($mess,$smtp_server,$from,$to)
{$err=$er=0;
$mail=fsockopen($smtp_server,25,$err,$er,30);
if($mail)
{
	s("HELO oleg",$mail);
	$temp=fgets($mail);
	if(substr($temp,0,3)==220)
	{
		$temp=   fgets($mail);
		if(substr($temp,0,3)==250)
		{s
		("MAIL FROM: $from",$mail);
		$temp=   fgets($mail);
		if(substr($temp,0,3)==250)
		{
			s("RCPT TO: $to",$mail);
			$temp=fgets($mail);
			if(substr($temp,0,3)==250)
			{
				
					s("DATA",$mail);$temp=fgets($mail);
					if(substr($temp,0,3)==354)
					{
						s("$mess\r\n.\r\n",$mail);
						$temp=fgets($mail);
						if(substr($temp,0,3)==250)
						{
							s("QUIT",$mail);
						}
					}
				
			}
		}
		}
		fclose($mail);
	}
}
}

?>
ндеюсь вы поняли что функция ree() отпровляе мыло вот пример
ree(' урааа ','smtp.bk.ru','master_etd@bk.ru','master_etd@bk.ru');

[off]добавлено спустя 29 минут:[/off]

забыл сказать для спама не подойдёт так как майл ру очень быстро баннят

[off]добавлено спустя 3 минуты:[/off]
Pro писал(а):

Код: Выделить всё

<?php

   $handle = smtp_connect($smtp_server, 25, 30, 1, 1, 1);
   echo smtp_command($handle, "EHLO $domain\r\n", 1, 1);
   echo smtp_command($handle, "MAIL FROM:<$from_mail>\r\n", 1, 1);
у тебя тут ошибка вместо "EHLO" должно быть "HELO"
Аватара пользователя
oxenus
Продвинутый
Сообщения: 750
Зарегистрирован: Пн авг 12, 2002 20:37
Откуда: отсюда
Контактная информация:

Сообщение oxenus »

ищейка писал(а):
у тебя тут ошибка вместо "EHLO" должно быть "HELO"
Как раз нет ;-)
Доки, и ещё раз доки ;)
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

oxenus писал(а):
Как раз нет ;-)
Доки, и ещё раз доки ;)
1 я конечно наверно дурак но если бы у тебя был бы сервак почтовый то бы ты видел ето в его логах

2 твой код не пашет
3 а мой да

[off]добавлено спустя 1 минуту:[/off]

ну ты вообще тут не выступай я лучше знаю я на етом деньги зарабатываю :)

[off]добавлено спустя 1 минуту:[/off]

и в каких доках ето ты нашёл ???
Аватара пользователя
ZorroGFS
Продвинутый
Сообщения: 961
Зарегистрирован: Вт сен 10, 2002 11:25
Откуда: Кишинёв
Контактная информация:

Сообщение ZorroGFS »

ищейка,
http://www.ietf.org/rfc/rfc1869.txt
RFC 1869 SMTP Service Extensions November 1995

4. The EHLO command

A client SMTP supporting SMTP service extensions should start an SMTP
session by issuing the EHLO command instead of the HELO command. If
the SMTP server supports the SMTP service extensions it will give a
successful response (see section 4.3), a failure response (see 4.4),
or an error response (4.5). If the SMTP server does not support any
SMTP service extensions it will generate an error response (see
section 4.5).
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

ну что сказать не факт что все все серваки ето поддерживают
Аватара пользователя
ZorroGFS
Продвинутый
Сообщения: 961
Зарегистрирован: Вт сен 10, 2002 11:25
Откуда: Кишинёв
Контактная информация:

Сообщение ZorroGFS »

ищейка,
Ну знаешь ли , есмтп существующий с 95-го года не держат только очень старые серваки.
А некоторые наоборот, требуют только ехло приветсвия.
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

ZorroGFS писал(а):ищейка,
Ну знаешь ли , есмтп существующий с 95-го года не держат только очень старые серваки.
А некоторые наоборот, требуют только ехло приветсвия.
не факт
Аватара пользователя
oxenus
Продвинутый
Сообщения: 750
Зарегистрирован: Пн авг 12, 2002 20:37
Откуда: отсюда
Контактная информация:

Сообщение oxenus »

ищейка,
Факт факт...

Какой сервак не поддерживает ЕХЛО?
Аватара пользователя
ZorroGFS
Продвинутый
Сообщения: 961
Зарегистрирован: Вт сен 10, 2002 11:25
Откуда: Кишинёв
Контактная информация:

Сообщение ZorroGFS »

ищейка,
Может ты тестил на каком-то минималистическом смтп редиректоре типа mail direct pro ? Они обычно страдают тем, что реализуют смтп по минимуму.
А так, хотелось бы увидеть в онлайне какой-нить сервак без есмтп :)
ищейка
Продвинутый
Сообщения: 784
Зарегистрирован: Чт мар 11, 2004 12:36
Контактная информация:

Сообщение ищейка »

ну ладно убедили
Аватара пользователя
Seven
Продвинутый
Сообщения: 350
Зарегистрирован: Ср янв 22, 2003 01:59
Откуда: аттуда

Сообщение Seven »

ищейка, спасибо за пример , но нихера себе убедили :)
имхо даже и не надо убеждать когда у тебя не будет нифига работать ты голову будешь ломать что за хрень а потом поймёшь что ето EHLO . да) нет нифига лучше своих ошыбок :)
Ответить

Вернуться в «Программирование»