Отправляем хтмл-письмо через сокеты
Вообще-то это не статья, просто я убил сегодня весь день, чтобы отправить html-письмо через сокеты. Но цель, с которой я это делал, обломалась. Но письмо я все таки отправил :). А цель у меня была такая: вставить в тело html-письма скрипт или swf, ворующий куки. Но к сожалению mail.ru фильтрует все теги <embed> и <script> в теле хтмл-письма :(. Но идея была отличная! Еще одно - я бы мог составить хтмл-письмо в Bat'е или другом клиенте, но к сожалению, там нельзя было вставить скрипт или же картинку в виде swf. Ни в бате, ни в аутлуке (по крайней мере я не нашел как). Поэтому и пришлось писать скриптец, который вставит нужные мне тэги. Может в каких других почтовиках – сработает эта техника. Не проверял, но вероятность есть.
Скрипт:
Код:
<?
$s=fsockopen('smtp.inbox.ru',25); //открываем сокет
echo fgets($s,512)."<br>";
fputs($s,"HELO ".$_SERVER['SERVER_ADDR']."\r\n"); //выолняем необходимые команды для smtp сервера
echo fgets($s,512)."<br>";
fputs($s,"MAIL FROM:je0n@inbox.ru\r\n"); //От кого письмо
echo fgets($s,512)."<br>";
fputs($s,"RCPT TO:jeon@inbox.ru\r\n"); //кому письмо
echo fgets($s,512)."<br>";
fputs($s,"DATA\r\n"); //начало тела письма
echo fgets($s,512)."<br>";
//fputs($s,"From:je0n@inbox\r\n");
fputs($s,"To:jeon@inbox.ru\r\n");
fputs($s,"MIME-Version: 1.0\r\n");
fputs($s,"Content-Type: text/html\r\n"); //Этот заголовок необходим,чтобы письмо отображалось как html
fputs($s,"Content-Transfer-Encoding: 7bit\r\n");
fputs($s,"\r\n");
fputs($s,"<html><body><h1>html-письмо</h1></body></html>\r\n.\r\n"); //хтмл-код письма и отправка
echo fgets($s,512)."<br>";
fputs($s,"QUIT\r\n"); //Завершаем связь с smtp сервером
echo fgets($s,512)."<br>";
?>
Комментов я думаю достаточно. Но одна проблемка есть - mail.ru требует smtp-авторизации, чтобы отправить письмо. Но это нестрашно. Чтобы пройти авторизацию просто проверьте почту на ящике, с которого собирайтесь отправлять письмо, т.е. пройдите pop3-авторизацию. После этого, в течении некоторого времени, вы сможете отправлять письма через smtp без авторизации, т.е. этот скрипт будет работать.
P.S. если кто знает как еще можно вставить флэш в хтмл документ (помимо <embed>), или придумает как обмануть фильтры, что на майл.ру, поделитесь плз инфой ))
|