$msg = "MAIL FROM: '$From'\r\n"; doProtocol($socket, $msg);
$msg = "RCPT TO: '$To'\r\n"; doProtocol($socket, $msg);
$msg = "DATA\r\n"; doProtocol($socket, $msg);
Smsg = '"$Message'\r\n.\r\n".
doProtocol($socket, $msg); $msg,= "QUIT\r\n"; doProtocol($socket, $msg);
close($socket);
echo("<h2>Message successfully sent to '$To' </h2>");
}
function doProtocol($socket, $msg) {
$ret = socket_write($socket, $msg, strlen(Smsg));
if ($ret < 0) {
errQuit("socket_write() failed: " . socket_strerror($ret));
}
$out = "";
while(($out: = socket_read($socket, 4096, PHP_NORMAL_READ)));
if (!$out) {
errQuit( "socket_read() failed: " . socket strerror($ret));
}
return;
}
function errQuit($msg) {
echo($msg . "<bf>");
echo("<h3>Could not send message</h3>"); exit(-l);
}
function usage() {
include("mailer.html"); exlt(-l);
} ?>
Сетевая информационная служба
В разделе, посвященном DNS, мы узнали, что DNS служит распределенной базой данных для хранения соответствия между сетевыми именами и адресами, в которой клиенты могут осуществлять Аналогично часто оказывается необходимым хранить информацию о пользователях, пароли, информацию о сети и сетевых службах таким образом, чтобы клиенты имели доступ к этим базам данных по сети.
Большинство первых операционных систем для настольных машин, включая UNIX, разрабатывались для отдельных компьютеров, а не для сетей. Это означало, что пользовательские и системные ресурсы требовалось однозначно идентифицировать только на конкретной машине. Например, если пользователь регистрировался под именем на одной рабочей станции, то же самое имя прекрасно годилось и для другой рабочей станции. С появлением локальных сетей это оказалось полезным в одних случаях и неудобным в других.
При наличии у пользователей сети учетных записей на нескольких машинах приходилось запоминать пароли для каждой из них, а модификацию учетных записей приходилось повторять на всех машинах. Для решения некоторых из этих проблем Sun Microsystems разработала сетевую информационную службу - Network Information Service (NIS), прежде известную под названием «желтые страницы» (Yellow Pages).
NIS предоставляет группу сетевых справочных баз данных и возможность доступа клиентов с различных машин к имеющейся в этих базах данных информации о хостах, сети и т. д. Однако некоторые особенности NIS ограничивают ее использование только конкретной сетевой средой. В частности, в отличие от DNS, эта система не иерархична. NIS следует плоской информационной структуре, в которой данный сервер NIS хранит информацию о ряде ресурсов для конкретной сети (называемой доменом) и не может обратиться к другому серверу NIS для получения информации о хостах, находящихся в других сетях.