PHP; fsockopen() ;
Модератор: Злобный
кто -нибудь может запостить реальный пример отправки почты через fsockopen() ??
например на mail.ru
или реальную ссылку тока не PEAR , уже смотрю код
пацан один с форума пробовал мне на мыло послать, - нифига
и телнетом тоже не пашет
кто-то ваще посылал почту так? или тока mail()
[off]добавлено спустя 1 минуту:[/off]
я имею в виду не с етого форума а с РНР-шного пытались, говорят
какие-то глюки с mail.ru
например на mail.ru
или реальную ссылку тока не PEAR , уже смотрю код
пацан один с форума пробовал мне на мыло послать, - нифига
и телнетом тоже не пашет
кто-то ваще посылал почту так? или тока mail()
[off]добавлено спустя 1 минуту:[/off]
я имею в виду не с етого форума а с РНР-шного пытались, говорят
какие-то глюки с mail.ru
сам тока через майл слал()
про фсокопен, гугль вот что выдал:
http://www.sourceshock.com/details_snippet.php?id=46
http://php.net/mail http://php.net/function.mail (в комментах)
про фсокопен, гугль вот что выдал:
http://www.sourceshock.com/details_snippet.php?id=46
http://php.net/mail http://php.net/function.mail (в комментах)
сенкс, ща посмотрю но мой интуишн подсказывает что не получится..x писал(а):сам тока через майл слал()
про фсокопен, гугль вот что выдал:
http://www.sourceshock.com/details_snippet.php?id=46
http://php.net/mail http://php.net/function.mail (в комментах)
ппробую на другой адрес но там авторизация, а ето уже c PEAR попробовать надо
так как не помню я кода с авторизацией
Код: Выделить всё
<?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);
}
?>
привет вот код работает 100 прочентов сам юзаю и написал
ндеюсь вы поняли что функция ree() отпровляе мыло вот пример
ree(' урааа ','smtp.bk.ru','master_etd@bk.ru','master_etd@bk.ru');
[off]добавлено спустя 29 минут:[/off]
забыл сказать для спама не подойдёт так как майл ру очень быстро баннят
[off]добавлено спустя 3 минуты:[/off]
Код: Выделить всё
<?
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(' урааа ','smtp.bk.ru','master_etd@bk.ru','master_etd@bk.ru');
[off]добавлено спустя 29 минут:[/off]
забыл сказать для спама не подойдёт так как майл ру очень быстро баннят
[off]добавлено спустя 3 минуты:[/off]
у тебя тут ошибка вместо "EHLO" должно быть "HELO"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);
1 я конечно наверно дурак но если бы у тебя был бы сервак почтовый то бы ты видел ето в его логахoxenus писал(а):
Как раз нет
Доки, и ещё раз доки
2 твой код не пашет
3 а мой да
[off]добавлено спустя 1 минуту:[/off]
ну ты вообще тут не выступай я лучше знаю я на етом деньги зарабатываю

[off]добавлено спустя 1 минуту:[/off]
и в каких доках ето ты нашёл ???
- ZorroGFS
- Продвинутый
- Сообщения: 961
- Зарегистрирован: Вт сен 10, 2002 11:25
- Откуда: Кишинёв
- Контактная информация:
ищейка,
http://www.ietf.org/rfc/rfc1869.txt
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).