Есть такой вот большущий код для отправки писем по SMTP: <?php header('Content-Type: text/plain;'); error_reporting(E_ALL ^ E_WARNING); ob_implicit_flush(); $address = 'localhost'; // адрес smtp-сервера $port = 25; // порт (стандартный smtp - 25) $login = 'info@site.ru'; // логин к ящику $pwd = '1111111'; // пароль к ящику $from = 'info@site.ru'; // адрес отправителя $to = 'vasyapupkin@mail.ru'; // адрес получателя $subject = 'Message subject'; // тема сообщения $message1 = 'Message text'; // текст сообщения try { // Создаем сокет $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); if ($socket < 0) { throw new Exception('socket_create() failed: '.socket_strerror(socket_last_error())."\n"); } // Соединяем сокет к серверу echo 'Connect to \''.$address.':'.$port.'\' ... '; $result = socket_connect($socket, $address, $port); if ($result === false) { throw new Exception('socket_connect() failed: '.socket_strerror(socket_last_error())."\n"); } else { echo "OK\n"; } // Читаем информацию о сервере read_smtp_answer($socket); // Приветствуем сервер write_smtp_response($socket, 'EHLO '.$address); read_smtp_answer($socket); // ответ сервера echo 'Authentication ... '; // Делаем запрос авторизации write_smtp_response($socket, 'AUTH LOGIN'); read_smtp_answer($socket); // ответ сервера // Отравляем логин write_smtp_response($socket, base64_encode($login)); read_smtp_answer($socket); // ответ сервера // Отравляем пароль write_smtp_response($socket, base64_encode($pwd)); read_smtp_answer($socket); // ответ сервера echo "OK\n"; echo "Check sender address ... "; // Задаем адрес отправителя write_smtp_response($socket, 'MAIL FROM:<'.$from.'>'); read_smtp_answer($socket); // ответ сервера echo "OK\n"; echo "Check recipient address ... "; // Задаем адрес получателя write_smtp_response($socket, 'RCPT TO:<'.$to.'>'); read_smtp_answer($socket); // ответ сервера echo "OK\n"; echo "Send message text ... "; // Готовим сервер к приему данных write_smtp_response($socket, 'DATA'); read_smtp_answer($socket); // ответ сервера // Отправляем данные $message = "To: $to\r\n".$message1; // добавляем заголовок сообщения "адрес получателя" $message = "Subject: $subject\r\n".$message1; // заголовок "тема сообщения" write_smtp_response($socket, $message."\r\n."); read_smtp_answer($socket); // ответ сервера echo "OK\n"; echo 'Close connection ... '; // Отсоединяемся от сервера write_smtp_response($socket, 'QUIT'); read_smtp_answer($socket); // ответ сервера echo "OK\n"; } // Закончился try catch (Exception $e) { echo "\nError: ".$e->getMessage(); } if (isset($socket)) { socket_close($socket); } // Функция для чтения ответа сервера. Выбрасывает исключение в случае ошибки function read_smtp_answer($socket) { $read = socket_read($socket, 1024); if ($read{0} != '2' && $read{0} != '3') { if (!empty($read)) { throw new Exception('SMTP failed: '.$read."\n"); } else { throw new Exception('Unknown error'."\n"); } } } // Функция для отправки запроса серверу function write_smtp_response($socket, $msg) { $msg = $msg."\r\n"; socket_write($socket, $msg, strlen($msg)); } echo"$address, $port, $login, $pwd, $from, $to, $subject, $message"; $result = smtp_mail ($address, $port, $login, $pwd, $from, $to, $subject, $message); if($result == true){ echo "Письмо успешно отправлено"; }else{ echo "Письмо не отправлено. Ошибка: " . $result; } $mail = new PHPMailer(); $mail->IsSMTP();// отсылать используя SMTP $mail->Host = "localhost"; // SMTP сервер $mail->SMTPAuth = true; // включить SMTP аутентификацию $mail->Username = "info@site.ru"; // пропишите Ваш почтовый адрес $mail->Password = "1111111"; // введите пароль на указанный ящик $mail->From = "info@site.ru"; // укажите от кого письмо $mail->FromName = "site"; // имя отправителя $mail->AddAddress("vasyapupkin@mail.ru","Vasya Pupkin"); // е-маил кому отправлять и на какое имя $mail->WordWrap = 50;// set word wrap $mail->IsHTML(true);// отправить в HTML формате $mail->Subject = "Подтверждение Регистрации"; // тема письма $mail->Body = "$message"; // тело письма в html формате $mail->AltBody = "$message"; // тело письма текстовое $mail->Send(); } ?> В общем, код рабочий, письма отправляются. Но мне необходимо осуществлять отправку писем только при некотором условии (допустим, если a=1). Но если заключить весь этот код в условие if: if (a==1) { Тут весь вышеупомянутый код } То он, почему-то, тормозится на подключении к серверу. Хотя, по логике, всё должно работать. Выдаёт только строку: Connect to 'localhost:25' ... OK И всё, на этом останавливается. Подскажите, что тут может быть не так, в чём загвоздка и как можно задать условие для выполнения данного кода?