Автор Тема: Отправка писем через SMTP с авторизацией  (Прочитано 3611 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tretresh

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Добрый день

Есть скрипт Отправка писем через SMTP с авторизацией

function get_data($smtp_conn)
{
$data="";
while($str = fgets($smtp_conn,515))
{
$data .= $str;
if(substr($str,3,1) == " ") { break; }
}
return $data;
}

$header="Date: ".date("D, j M Y G:i:s")." +0700\\r\\n";
$header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(\' Александр\')))."?= \\r\\n";
$header.="X-Mailer: The Bat! (v3.99.3) Professional\\r\\n";
$header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(\' Александр\')))."?= \\r\\n";
$header.="X-Priority: 3 (Normal)\\r\\n";
$header.="Message-ID: <172562218.".date("YmjHis")."@yandex.ru>\\r\\n";
$header.="To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(\'Сергей\')))."?= \\r\\n";
$header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode(\'тест\')))."?=\\r\\n";
$header.="MIME-Version: 1.0\\r\\n";
$header.="Content-Type: text/plain; charset=windows-1251\\r\\n";
$header.="Content-Transfer-Encoding: 8bit\\r\\n";

$text="тест";

$smtp_conn = fsockopen("smtp.yandex.ru", 25,$errno, $errstr, 10);
if(!$smtp_conn) {print "соединение с серверов не прошло"; fclose($smtp_conn); exit;}
$data = get_data($smtp_conn);

fputs($smtp_conn,"HELO yandex.ru\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250) {print "ошибка приветсвия HELO"; fclose($smtp_conn); exit;}

fputs($smtp_conn,"AUTH LOGIN\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 334) {print "сервер не разрешил начать авторизацию"; fclose($smtp_conn); exit;}

fputs($smtp_conn,base64_encode("login")."\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 334) {print "ошибка доступа к такому юзеру"; fclose($smtp_conn); exit;}

fputs($smtp_conn,base64_encode("password")."\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 235) {print "не правильный пароль"; fclose($smtp_conn); exit;}

fputs($smtp_conn,"MAIL FROM:test@yandex.ru\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250) {print "сервер отказал в команде MAIL FROM"; fclose($smtp_conn); exit;}

fputs($smtp_conn,"RCPT TO:test@yandex.ru\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250 AND $code != 251) {print "Сервер не принял команду RCPT TO"; fclose($smtp_conn); exit;}

fputs($smtp_conn,"DATA\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 354) {print "сервер не принял DATA"; fclose($smtp_conn); exit;}

fputs($smtp_conn,$header."\\r\\n".$text."\\r\\n.\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250) {print "ошибка отправки письма"; fclose($smtp_conn); exit;}

fputs($smtp_conn,"QUIT\\r\\n");
fclose($smtp_conn);
?>

Я примощи  функций XForms сделал вод текста письма и тема
А еще хотелось бы водить  login, password, MAIL FROM, RSPT TO только почему то не получается как должен выгледить код


Например вот этот

fputs($smtp_conn,"MAIL FROM:test@yandex.ru\\r\\n");
$code = substr(get_data($smtp_conn),0,3);
if($code != 250) {print "сервер отказал в команде MAIL FROM"; fclose($smtp_conn); exit;}

Зарание блогадарю

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28