
Почему именно через smtp? Все очень просто... Не все хостинги поддерживают анонимную отправку почты. А вот отправить почту через любой существующий почтовый сервер намного проще, будь то mail, rambler, yandex либо что-то свое. Для отправки необходимо иметь почтовый ящик, знать от него пароль :) и знать сервер smtp. Ниже приведен код на php для отправки почты через smtp:
<?PHP
// Функция для отправки запроса серверу
function smtpCommand($socket, $msg) {
socket_write($socket, $msg."\r\n", strlen($msg."\r\n"));
}
$server = "smtp.yandex.ru";
$port = 25;
$login = "логин";
$pass = "пароль";
$from = "логин@yandex.ru";
$to = "кому@gmail.com";
$subject = "Тема письма";
$message = "Текст письма";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$result = socket_connect($socket, $server, $port);
if ($result === false)
die("Невозможно соединиться с {$server}:{$port}");
smtpCommand($socket, "EHLO ".$server); // Посылаем на сервер, что будет аутентификация по логину и паролю
smtpCommand($socket, "AUTH LOGIN"); // передаем команду ввода логина и пароля
smtpCommand($socket, base64_encode($login)); // логин, надо кодировать в BASE64
smtpCommand($socket, base64_encode($pass)); // пароль, надо кодировать в BASE64
smtpCommand($socket, "MAIL FROM: <{$from}>"); // указываем значение поля "От кого"
smtpCommand($socket, "RCPT TO: <{$to}>"); // указываем значение поля "Кому"
smtpCommand($socket, "DATA"); // говорим серверу, что будет сообщение письма
smtpCommand($socket, "Subject: {$subject}\r\nTo: {$to}\r\n{$message}\r\n."); // добавляем тело письма
smtpCommand($socket, "QUIT"); // Собственно отправляем письмо и выходим
socket_close($socket);
?>
Вот в принципе и все. Только помним, что для спама есть ограничения в виде timeout и количестве писем в час. А вообще используйте скрипт в благих целях :)