Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=30)
-   -   Отправляем хтмл-письмо через сокеты (https://forum.antichat.xyz/showthread.php?t=32882)

je0n 07.02.2007 01:09

Отправляем хтмл-письмо через сокеты
 
Вообще-то это не статья, просто я убил сегодня весь день, чтобы отправить 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>), или придумает как обмануть фильтры, что на майл.ру, поделитесь плз инфой ))

_Great_ 07.02.2007 09:31

Цитата:

Комментов я думаю достаточно. Но одна проблемка есть - mail.ru требует smtp-авторизации, чтобы отправить письмо. Но это нестрашно.
А ты попробуй слать не на SMTP.MAIL.RU, а на MX-сервер mail.ru: mxs.mail.ru
там авторизация не требуется, т.к. там другие SMTP-сервера через него шлют почту на mail.ru.
Кроме того, отправителя можно будет написать от балды. Например, bill@microsoft.com

Смотри мой исходник SMTP-сервера на Си для более подробных деталей

KEZ 07.02.2007 09:59

и полочат нахyй вашь диалапный/некоторый_другой_динамичес кий IP при посылке "DATA" мх-серверу mxs.mail.ru

Цитата:

fputs($s,"QUIT\r\n"); //Завершаем связь с smtp сервером
echo fgets($s,512)."<br>";
логично - fclose( $s );

_Great_ 07.02.2007 14:54

Цитата:

и полочат нахyй вашь диалапный/некоторый_другой_динамичес кий IP при посылке "DATA" мх-серверу mxs.mail.ru
Соксы уже отменили?

je0n 07.02.2007 15:23

ггггг, ну вы развели тут! Как есть, так и есть. Там же написана какая цель была. Так как цель обломалась, остальное делать безсмысленно.


Время: 03:46