Smtp

Fish

Guest
Smtp

Народ, столкнулся с такой проблемой:
нужно отправлять письма через свой SMTP сервер, но mail() не подходит для этого, т.к. мне нужно ручками прописать SMTP сервер, через который эта почта будет ходить.. подскажите, как можно найти выход из этой проблемы?
Заранее спасибо.
 

Fish

Guest
smtp

забыл добавить:
править .ini файлик, где прописываеться smtp сервер по умолчанию, не могу...
imap не стоит..
вот такие дела..
 

sergo

Guest
Re: smtp

можно через сокеты:
PHP:
<?php

$sd = fsockopen ('mail.server.com', 25, $errno, $errstr, 30);
if (!$sd)
{
   echo "$errstr ($errno)<br>\n";
}
else
{
   echo (fgets ($sd, 1024));
}
// ...
// дальше по smtp потоколу
// ...

fclose ($sd);
?>
 

telepuzik

тинки-винки
Re: Re: Re: smtp

попробуй класс phpmailer. оч. удобно и голову не ломает. там есть доп. класс smtp который и делает отсылку через smtp. попробуй.
 

sergo

Guest
Re: Re: Re: smtp

Автор оригинала: Unregistered
...
команды SMTP я знаю, но в какое место их вставлять..
покажи на примере плиз..
как я понял должно вставляться примерно следующее:
HELO domain.com
MAIL FROM: <[email protected]>
RCPT TO: <[email protected]>
DATA
message--test
.
quit
вроде так..
дык в каком виде и куда это вставить?
заранее сенькс
Эти самые команды посылаешь с помощью fputs ($sd, $strCommand);
и читаешь ответы (fgets), если все ok (ответ начинается на 2) то продолжаешь дальше

каждая команда должна заканчиваться символом завершения строки
 

Fish

Guest
Re: Re: Re: Re: smtp

Эти самые команды посылаешь с помощью fputs ($sd, $strCommand);
и читаешь ответы (fgets), если все ok (ответ начинается на 2) то продолжаешь дальше
каждая команда должна заканчиваться символом завершения строки

-------------------------------------------------------------
PHP:
		$sd = fsockopen ('$server', 25, $errno, $errstr, 30);
		if (!$sd)
		{
		echo "ERROR: $errstr ($errno)\n";
		}
		else
		{
   		fgets ($sd, 1024);
   		fputs ($sd, strlen("helo $server\n"));
   		fputs ($sd, strlen("mail from: $from\n"));
   		fputs ($sd, strlen("rcpt to: $to\n"));
   		fputs ($sd, strlen("DATA\n"));
   		fputs ($sd, strlen("testTESTtest\n"));
   		fputs ($sd, strlen(".\n"));
   		fputs ($sd, strlen("quit\n"));
		}

fclose ($sd);

ну что тут не правильно?!
выдает ответы 2221111, т.е. не проходит строка
PHP:
fputs ($sd, strlen("DATA\n"));
ну и ессно, что все после нее тоже не проходит..

народ, можете показать нормально работающий скритп на эту тему?

заранее спасибо..
 

sergo

Guest
Re: Re: Re: Re: Re: smtp

Автор оригинала: Fish
PHP:
fputs ($sd, strlen("helo $server\n"));
fputs ($sd, strlen("mail from: $from\n"));
fputs ($sd, strlen("rcpt to: $to\n"));
fputs ($sd, strlen("DATA\n"));
fputs ($sd, strlen("testTESTtest\n"));
fputs ($sd, strlen(".\n"));
fputs ($sd, strlen("quit\n"));
...
...
ну что тут не правильно?!
...
Неправильно то, что ты посылаешь не сами команды а их длину...
 
Сверху