[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Капризы smtp сервера
Владимир55
Скрипт отправки почты целый год нормально работал и вдруг перестал.

Пытаясь понять, в чем дело, разместил функцию отправки на отдельном файле и убедился, что не работает.

Код такой:

	// Отправка

function smtpmail($mail_to, $subject, $message, $from_name){

global $smtp_server;
global $login;
global $password;
global $domen;
global $port;

$from_mail = $login;

$encoding = "utf-8";

$socket = @fsockopen($smtp_server, $port, $errno, $errstr, 30);
if(substr(@fgets($socket,256),0,3) != 220) die("Сервер $smtp_server не найден");

fputs($socket, "EHLO $smtp_server\r\n");
if(substr(@fgets($socket,256),0,3) != 250) die("Сервер не принял команду идентификации EHLO");

fputs($socket, "AUTH LOGIN\r\n");
if(substr(@fgets($socket,256),0,3) != 250) die("Сервер отклонил аутентификацию AUTH LOGIN");

fputs($socket, base64_encode($login)."\r\n");
if(substr(@fgets($socket,256),0,3) != 250) die("Не принят логин");

fputs($socket, base64_encode($password)."\r\n");
if(substr(@fgets($socket,256),0,3) != 250) die("Пароль неверен");

$SEND = "Date: ".date("r")."\r\n";
$SEND .= "From: =?$encoding?B?".base64_encode($from_name)."?= <$from_mail>\r\n";
$SEND .= "X-Priority: 3 (Normal)\r\n";
$SEND .= "Message-ID: <" . mt_rand(123456789, 987654321) . "575496646." . date("YmjHis") . "@$domen>\r\n";

$SEND .= "List-Subscribe: <http://bonly.ru/subscribe>\r\n";
q=0exg1p0bqy1yvYSuf1aa091e1000zhx>

$SEND .= "List-Unsubscribe: <http://bonly.ru/unsubscribe/?adr=$mail_to>\r\n";


$SEND .= "To: $mail_to\r\n";
$SEND .= "Subject: =?$encoding?B?".base64_encode($subject)."?=\r\n";
$SEND .= "MIME-Version: 1.0\r\n";
$SEND .= "Content-Type: text/html; charset=$encoding\r\n";

$SEND .= "Content-Transfer-Encoding: quoted-printable\r\n";
$SEND .= quoted_printable_encode($message) ."\r\n";

unset($flag);

fputs($socket, "MAIL FROM: <$from_mail>\r\n");
if(substr(fgets($socket,256),0,3) != 250) $flag = "Ошибка адреса отправителя MAIL FROM";
// echo "<br />68 $socket " . substr(fgets($socket,256),0,3);

fputs($socket, "RCPT TO: <$mail_to>\r\n");
if(substr(fgets($socket,256),0,3) != 250) $flag = "Ошибка адреса получаетеля mail_to";
// echo "<br />73 $socket " . substr(fgets($socket,256),0,3);

fputs($socket, "DATA\r\n");
if(substr(fgets($socket,256),0,3) != 250) $flag = "Ошибка инициации почтовых данных DATA";
// echo "<br />78 $socket " . substr(fgets($socket,256),0,3);

fputs($socket, $SEND."\r\n.\r\n");
if(substr(fgets($socket,256),0,3) != 334) $flag = "Ошибка передачи письма";
// echo "<br />83 $socket " . substr(fgets($socket,256),0,3);

fputs($socket, "QUIT\r\n");
if(substr(fgets($socket,256),0,3) != 334) $flag = "Ошибка звершения сеанса";
// echo "<br />87 $socket " . substr(fgets($socket,256),0,3);

fclose($socket);


}

$email = "mem@1234789.ru";
smtpmail($email, "Тема smtpmail-test-2.php", "Текст письма", "ВБК");



А теперь самое смешное - если раскомментировать // echo, то всё работает!

Что за чудеса?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.