<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Блог Сказкина</title>
	
	<link>http://www.skazkin.ru</link>
	<description>Мне надоел блоггинг</description>
	<lastBuildDate>Tue, 09 Mar 2010 14:31:10 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/skazkinwp" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="skazkinwp" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>«Защита» от обновления страницы по F5 :)</title>
		<link>http://www.skazkin.ru/p/zashhita-ot-obnovleniya-stranicy-po-f5.html</link>
		<comments>http://www.skazkin.ru/p/zashhita-ot-obnovleniya-stranicy-po-f5.html#comments</comments>
		<pubDate>Tue, 09 Mar 2010 14:31:10 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[идиоты]]></category>
		<category><![CDATA[паранойя]]></category>
		<category><![CDATA[спиппеты]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=675</guid>
		<description><![CDATA[Навеяно SE и паранойей тамошнего ТС к ддос через F5 :DDD
&#60;script type="text/javascript"&#62;
document.onkeydown = KeyCheck;
function KeyCheck(e) {
&#160;&#160;var KeyID = (window.event) ? event.keyCode : e.keyCode;
&#160;&#160;if(KeyID == 116){
&#160;&#160;&#160;&#160;return false;
&#160;&#160;}
}
&#60;/script&#62;
]]></description>
			<content:encoded><![CDATA[<p>Навеяно SE и паранойей тамошнего ТС к ддос через F5 :DDD</p>
<p><code>&lt;script type="text/javascript"&gt;<br />
document.onkeydown = KeyCheck;<br />
function KeyCheck(e) {<br />
&nbsp;&nbsp;var KeyID = (window.event) ? event.keyCode : e.keyCode;<br />
&nbsp;&nbsp;if(KeyID == 116){<br />
&nbsp;&nbsp;&nbsp;&nbsp;return false;<br />
&nbsp;&nbsp;}<br />
}<br />
&lt;/script&gt;</code></p>

<p><a href="http://feedads.g.doubleclick.net/~a/IGpRoOa3XnV6hyELDXVBmptMrso/0/da"><img src="http://feedads.g.doubleclick.net/~a/IGpRoOa3XnV6hyELDXVBmptMrso/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/IGpRoOa3XnV6hyELDXVBmptMrso/1/da"><img src="http://feedads.g.doubleclick.net/~a/IGpRoOa3XnV6hyELDXVBmptMrso/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/zashhita-ot-obnovleniya-stranicy-po-f5.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Чем отличается PHP от FTP?</title>
		<link>http://www.skazkin.ru/p/chem-otlichaetsya-php-ot-ftp.html</link>
		<comments>http://www.skazkin.ru/p/chem-otlichaetsya-php-ot-ftp.html#comments</comments>
		<pubDate>Tue, 16 Feb 2010 12:22:16 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[Чем отличается PHP от FTP]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=673</guid>
		<description><![CDATA[Этот вопрос мучает людей веками.
Ответ на вопрос &#171;Чем отличается PHP от FTP&#187; прост. Но его никто не знает.
]]></description>
			<content:encoded><![CDATA[<p>Этот вопрос мучает людей веками.</p>
<p>Ответ на вопрос<strong> &laquo;Чем отличается PHP от FTP&raquo;</strong> прост. Но его никто не знает.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/RUmY8c5d-gReBKF6xxPPgK8J97g/0/da"><img src="http://feedads.g.doubleclick.net/~a/RUmY8c5d-gReBKF6xxPPgK8J97g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RUmY8c5d-gReBKF6xxPPgK8J97g/1/da"><img src="http://feedads.g.doubleclick.net/~a/RUmY8c5d-gReBKF6xxPPgK8J97g/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/chem-otlichaetsya-php-ot-ftp.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мерзкие отличия MacOS от Linux</title>
		<link>http://www.skazkin.ru/p/merzkie-otlichiya-macos-ot-linux.html</link>
		<comments>http://www.skazkin.ru/p/merzkie-otlichiya-macos-ot-linux.html#comments</comments>
		<pubDate>Thu, 11 Feb 2010 11:34:38 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[cp1251]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[macos]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[utf8]]></category>
		<category><![CDATA[windows-1251]]></category>
		<category><![CDATA[кодировка]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=661</guid>
		<description><![CDATA[Задача: массово переконвертить файлы с расширением .php из Windows-1251 в UTF-8.
Итоговое решение:
for a in `find /files_folder -type f -name "*.php"`; do  iconv -f Windows-1251  -t UTF8  $a &#62; /tmp/cp.file; cat /tmp/cp.file &#62; $a; done; rm -rf /tmp/cp.file
Ну не ппц ли. Тамошний xargs не поддерживает -i, -I и -J работают через пень-колоду, а [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Задача:</strong> массово переконвертить файлы с расширением .php из Windows-1251 в UTF-8.</p>
<p><strong>Итоговое решение:</strong></p>
<p><code>for a in `find /files_folder -type f -name "*.php"`; do  iconv -f Windows-1251  -t UTF8  $a &gt; /tmp/cp.file; cat /tmp/cp.file &gt; $a; done; rm -rf /tmp/cp.file</code></p>
<p>Ну не ппц ли. Тамошний xargs не поддерживает -i, -I и -J работают через пень-колоду, а у iconv нет параметра -o :(</p>

<p><a href="http://feedads.g.doubleclick.net/~a/VvbY3S6Z-hmhNOO1z_3ZKpNNLNk/0/da"><img src="http://feedads.g.doubleclick.net/~a/VvbY3S6Z-hmhNOO1z_3ZKpNNLNk/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VvbY3S6Z-hmhNOO1z_3ZKpNNLNk/1/da"><img src="http://feedads.g.doubleclick.net/~a/VvbY3S6Z-hmhNOO1z_3ZKpNNLNk/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/merzkie-otlichiya-macos-ot-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Создать модуль для CPAN</title>
		<link>http://www.skazkin.ru/p/sozdat-modul-dlya-cpan.html</link>
		<comments>http://www.skazkin.ru/p/sozdat-modul-dlya-cpan.html#comments</comments>
		<pubDate>Fri, 18 Dec 2009 11:48:37 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[модули]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=651</guid>
		<description><![CDATA[Скорее для себя, чтобы не забыть
$ cd /path/to/dev/folder/
$ h2xs -b 5.8.8 -AX Foo::Bar -v 1.00
Writing Foo-Bar/lib/Foo/Bar.pm
Writing Foo-Bar/Makefile.PL
Writing Foo-Bar/README
Writing Foo-Bar/t/Foo-Bar.t
Writing Foo-Bar/Changes
Writing Foo-Bar/MANIFEST
&#8212; b&#160;&#8212; минимальная версия Perl, нужная для работы модуля
&#8212; v&#160;&#8212; версия модуля
После чего распихиваем код по соответствующим файлам, не забывая про PerlDoc и тесты, пробуем собрать
$ cd Foo-Bar
$ perl Makefile.PL
$ make
$ make test
$ make clean
Ошибок [...]]]></description>
			<content:encoded><![CDATA[<p>Скорее для себя, чтобы не забыть</p>
<p>$ cd /path/to/dev/folder/<br />
$ h2xs -b 5.8.8 -AX Foo::Bar -v 1.00<br />
Writing Foo-Bar/lib/Foo/Bar.pm<br />
Writing Foo-Bar/Makefile.PL<br />
Writing Foo-Bar/README<br />
Writing Foo-Bar/t/Foo-Bar.t<br />
Writing Foo-Bar/Changes<br />
Writing Foo-Bar/MANIFEST</p>
<p>&mdash; b&nbsp;&mdash; минимальная версия Perl, нужная для работы модуля<br />
&mdash; v&nbsp;&mdash; версия модуля</p>
<p>После чего распихиваем код по соответствующим файлам, не забывая про PerlDoc и тесты, пробуем собрать</p>
<p>$ cd Foo-Bar<br />
$ perl Makefile.PL<br />
$ make<br />
$ make test<br />
$ make clean</p>
<p>Ошибок быть не должно&nbsp;&mdash; если есть&nbsp;&mdash; исправьте.)</p>
<p>Проверяем как выглядит Pod</p>
<p>$ pod2html lib/Foo/Bar.pm > Bar.htm</p>
<p>Сгенерит вам то, что будет видеть CPAN в вашем поде</p>
<p>Убеждаемся что всё в порядке и </p>
<p>$ tar cvf Foo-Bar-1.00.tar Foo-Bar-1.00<br />
$ gzip --best Foo-Bar-1.00.tar</p>
<p>Для того, чтобы залить модуль на CPAN&nbsp;&mdash; надо иметь аккаунт :)</p>
<p>http://pause.perl.org&nbsp;&mdash; заявка у меня лично рассмотрелась за сутки. Коллег рассматривали неделю :)</p>
<p>После рассмотрения вам приходит письмо счастья&nbsp;&mdash; и в личном кабинете через Upload загружаете ваш архивчик.</p>
<p>У меня появился через день&nbsp;&mdash; уже на CPAN. Может пройти до недели.</p>
<p>В общем-то всё просто :)</p>
<p><a href="http://search.cpan.org/~jumash/WWW-phpBB-Poster-0.02/lib/WWW/phpBB/Poster.pm">мой первый модуль на CPAN</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/HEnia-IEYhy1q_70cuTekrJUBSo/0/da"><img src="http://feedads.g.doubleclick.net/~a/HEnia-IEYhy1q_70cuTekrJUBSo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HEnia-IEYhy1q_70cuTekrJUBSo/1/da"><img src="http://feedads.g.doubleclick.net/~a/HEnia-IEYhy1q_70cuTekrJUBSo/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/sozdat-modul-dlya-cpan.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>IMAP и POP Gmail через telnet или читать почту это просто</title>
		<link>http://www.skazkin.ru/p/imap-i-pop-gmail-cherez-telnet-ili-chitat-pochtu-eto-prosto.html</link>
		<comments>http://www.skazkin.ru/p/imap-i-pop-gmail-cherez-telnet-ili-chitat-pochtu-eto-prosto.html#comments</comments>
		<pubDate>Fri, 20 Nov 2009 11:03:07 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[imap]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[pop3]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[ssl]]></category>
		<category><![CDATA[telnet]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=647</guid>
		<description><![CDATA[В этом нет ничего сложного&#160;&#8212; правда! Фактически&#160;&#8212; написать свой почтовик&#160;&#8212; проще простого. Так же просто как и читать почту через консоль.
Далее&#160;&#8212; две маленькие статьи на живых примерах&#160;&#8212; как пользоваться POP3 и IMAP без почтового клиента.
Читаем POP3
Вам потребуется Linux. Ну или поддержка OpenSSL в Windows&#160;&#8212; если она у вас есть&#160;&#8212; то, вероятно, статья не для вас&#160;&#8212; [...]]]></description>
			<content:encoded><![CDATA[<p>В этом нет ничего сложного&nbsp;&mdash; правда! Фактически&nbsp;&mdash; написать свой почтовик&nbsp;&mdash; проще простого. Так же просто как и читать почту через консоль.</p>
<p>Далее&nbsp;&mdash; две маленькие статьи на живых примерах&nbsp;&mdash; как пользоваться POP3 и IMAP без почтового клиента.</p>
<h2>Читаем POP3</h2>
<p>Вам потребуется Linux. Ну или поддержка OpenSSL в Windows&nbsp;&mdash; если она у вас есть&nbsp;&mdash; то, вероятно, статья не для вас&nbsp;&mdash; вы и так всё знаете :)</p>
<p>Далее&nbsp;&mdash; набор команд с расшифровкой:</p>
<blockquote>
<p>
openssl s_client -crlf -connect pop.gmail.com:995
</p>
</blockquote>
<p>Мы коннектимся на гмейл с использованием SSL. Параметр -crlf гарантирует что нам не придётся испытывать проблем с переносом строк и наши команды будут распознаны так, как надо.<br />
Параметр -ign_eof обещает нам, что команды, начинающиеся с буквы R будут корректно восприняты s_client и не вызовут разрыва SSL.</p>
<p>В случае успешного соединения мы видим что-то типа следующего:</p>
<blockquote>
<p>
CONNECTED (00000003)<br />
...<i>куча букв и цифр, свидетельствующих о SSL</i>...<br />
+OK Gpop ready for requests from 79.165.189.32 3pf3718132bwz.16
</p>
</blockquote>
<p>Это значит что на первом этапе всё прошло отлично и мы присоединились к почтовику Гугла.<br />
Далее нам следует авторизоваться.</p>
<blockquote>
<p>
USER логин БЕЗ @gmail.com
</p>
</blockquote>
<p>В случае успешного прохождения команды мы видим строчку:</p>
<blockquote>
<p>
+OK send PASS
</p>
</blockquote>
<p>Нас просят ввести пароль. Что мы и сделаем:</p>
<blockquote>
<p>
 PASS ваш_пароль
</p>
</blockquote>
<p>В случае если пароль верен&nbsp;&mdash; нас пускают внутрь!</p>
<blockquote>
<p>
+OK Welcome.
</p>
</blockquote>
<p>Вот мы и внутри нашего почтового ящика.<br />
Давайте проверим&nbsp;&mdash; пришли ли нам новые сообщения?</p>
<blockquote>
<p>
STAT
</p>
</blockquote>
<p>Я увидел следующее:</p>
<blockquote>
<p>
+OK 15 1408449
</p>
</blockquote>
<p>Это значит, что на сервере у меня 15 непрочитанных писем общим размером 1 408 449 байт. </p>
<p>Интересно&nbsp;&mdash; а сколько весит каждое непрочитанное письмо?</p>
<blockquote>
<p>
LIST
</p>
</blockquote>
<p>Вот и список сообщений:</p>
<blockquote>
<p>
+OK 15 messages (1408449 bytes)<br />
1 3423<br />
2 42610<br />
3 3693<br />
4 3693<br />
5 445122<br />
6 1933<br />
7 3488<br />
8 3760<br />
9 3155<br />
10 439325<br />
11 9071<br />
12 3125<br />
13 3575<br />
14 3997<br />
15 438479
</p>
</blockquote>
<p>Видите&nbsp;&mdash; пока ничего сложного :)</p>
<p>Давайте прочитаем пятое сообщение&nbsp;&mdash; что-то в нём много байт&nbsp;&mdash; наверное, интересное письмо!</p>
<p>Для чтения письма доступна команда TOP</p>
<blockquote>
<p>
TOP 5 0
</p>
</blockquote>
<p>Этой командой мы запросили пятое письмо без его текста&nbsp;&mdash; получить только заголовки. В заголовках, помимо всего прочего, отбражается кому пришло это письмо, от кого и какая у письма тема.</p>
<blockquote>
<p>
...<br />
From: root <bender@skazkin.ru><br />
To: master@skazkin.ru<br />
Subject: Cron <root@skazkinserver> perl /home/common/parser.pl queue<br />
...
</p>
</blockquote>
<p>Мне пришёл отчёт с моего сервера&nbsp;&mdash; что парсер закончил строить очередь. Хорошо, читать мне это не очень интересно&nbsp;&mdash; там разная служебная информация.<br />
Пометим его для удаления</p>
<blockquote>
<p>
DELE 5
</p>
</blockquote>
<p>Гмейл понял нас&nbsp;&mdash; </p>
<blockquote>
<p>
+OK marked for deletion
</p>
</blockquote>
<p>Гмейл удалит отмеченные для удаления письма после выхода из системы.</p>
<p>Прочитаем самое маленькое письмо&nbsp;&mdash; </p>
<blockquote>
<p>
TOP 6 0
</p>
</blockquote>
<blockquote>
<p>
Subject: =?KOI8-R?B?0NLJ18XU?=<br />
From: =?KOI8-R?B?4c7Uz84g58HCz9c=?= <друг@gmail.com><br />
To: Andrew Skazkin <мне@gmail.com><br />
Content-Type: text/plain; charset=ISO-8859-1
</p>
</blockquote>
<p>Ого&nbsp;&mdash; не читается :(<br />
Это уже решается почтовыми клиентами&nbsp;&mdash; тема письма&nbsp;&mdash; в кодировке KOI8-R и зашифрована BASE64.</p>
<p>Чтож, почта прочитана и пора выходить.</p>
<p>Я так подумал&nbsp;&mdash; не буду я удалять письмо от Cron.</p>
<blockquote>
<p>
RSET
</p>
</blockquote>
<p>Эта команда сбрасывает флажки на удаление у писем, которые мы отметили для удаления.</p>
<blockquote>
<p>
+OK
</p>
</blockquote>
<p>Такой ответ&nbsp;&mdash; в случае успеха. Теперь можно выйти. </p>
<blockquote>
<p>
QUIT
</p>
</blockquote>
<p>Ответом нам&nbsp;&mdash; </p>
<blockquote>
<p>
+OK Farewell.<br />
read:errno=0
</p>
</blockquote>
<p>Вот и всё. С POP3 мы разобрались, не так ли? Пришла пора для IMAP.</p>
<h2>Играемся с IMAP</h2>
<p>Процедура мало чем отличается&nbsp;&mdash; только лишь командами.</p>
<blockquote>
<p>
openssl s_client -crlf -ign_eof -connect imap.gmail.com:993
</p>
</blockquote>
<p>Опять выдала нам кучу букв и цифр, и последняя строчка&nbsp;&mdash; </p>
<blockquote>
<p>
+OK Gpop ready for requests from 79.165.189.32 1pf4035116fxm.33
</p>
</blockquote>
<p>Входим в аккаунт:</p>
<blockquote>
<p>
. login я@gmail.com мойпароль
</p>
</blockquote>
<p>Успешно!</p>
<blockquote>
<p>
* CAPABILITY IMAP4rev1 UNSELECT LITERAL+ IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE<br />
. OK я@gmail.com authenticated (Success)
</p>
</blockquote>
<p><b>Обратите внимание&nbsp;&mdash; все команды предваряются точкой и пробелом!</b></p>
<p>Получим список наших папок в аккаунте:</p>
<blockquote>
<p>
. list "" &laquo;*&raquo;
</p>
</blockquote>
<p>Нам вываливается список папок:</p>
<blockquote>
<p>
* LIST (\HasNoChildren) &laquo;/&raquo; &laquo;Cron&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; &laquo;INBOX&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; &laquo;LJ&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; &laquo;Proxies&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; &laquo;WordPress&raquo;<br />
* LIST (\Noselect \HasChildren) &laquo;/&raquo; [Gmail]""<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BBIEQQRP- &#038;BD8EPgRHBEIEMA-&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BBoEPgRABDcEOAQ9BDA-&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BB8EPgQ8BDUERwQ1BD0EPQRLBDU-&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BCEEPwQwBDw-&raquo;<br />
* LIST (\HasNoChildren) &laquo;/&raquo; [Gmail]&laquo;/&#038;BCcENQRABD0EPgQyBDgEOgQ4-&raquo;<br />
. OK Success
</p>
</blockquote>
<p>То, что с непонятными символами&nbsp;&mdash; папки, названные по-русски.</p>
<p>Сколько у нас писем в папке INBOX?</p>
<blockquote>
<p>
. status INBOX (messages)
</p>
</blockquote>
<p>Ответ&nbsp;&mdash; </p>
<blockquote>
<p>
* STATUS &laquo;INBOX&raquo; (MESSAGES 8)<br />
. OK Success
</p>
</blockquote>
<p>Ого! Есть новая почта! Почитаем её:</p>
<blockquote>
<p>
. select inbox
</p>
</blockquote>
<p>Выборка успешна: </p>
<blockquote>
<p>
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen)<br />
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen \*)]<br />
* OK [UIDVALIDITY 2]<br />
* 8 EXISTS<br />
* 0 RECENT<br />
* OK [UIDNEXT 68967]<br />
. OK [READ-WRITE] inbox selected. (Success)
</p>
</blockquote>
<p>Посмотрим&nbsp;&mdash; что из восьми писем ещё не прочитано:</p>
<blockquote>
<p>
. fetch 1:* flags
</p>
</blockquote>
<p>Эта команда выбирает флаги для всех писем, начиная с первого.</p>
<blockquote>
<p>
* 1 FETCH (FLAGS (\Seen))<br />
* 2 FETCH (FLAGS (\Seen))<br />
* 3 FETCH (FLAGS (\Seen))<br />
* 4 FETCH (FLAGS (\Seen))<br />
* 5 FETCH (FLAGS (\Seen))<br />
* 6 FETCH (FLAGS ())<br />
* 7 FETCH (FLAGS ())<br />
* 8 FETCH (FLAGS ())<br />
. OK Success
</p>
</blockquote>
<p>Прочитаем седьмое письмо&nbsp;&mdash; его заголовки</p>
<blockquote>
<p>
. fetch 7 full
</p>
</blockquote>
<blockquote>
<p>
* 7 FETCH (ENVELOPE (&laquo;Fri, 20 Nov 2009 09:58:35 +0000&raquo; &laquo;=?KOI8-R?B?79TXxdTJ1NggzsEg08/Pwt3FzsnFICfSwcLP1MXOy8EgzsEgMSDCwcvTJw==?=&raquo; ((&laquo;=?KOI8-R?B?5s/S1c0gzyDQz8nTy8/X2cgg08nT1MXNwcg=?=&raquo; NIL &laquo;root&raquo; &laquo;searchengines.ru&raquo;)) ((&laquo;=?KOI8-R?B?5s/S1c0gzyDQz8nTy8/X2cgg08nT1MXNwcg=?=&raquo; NIL &laquo;root&raquo; &laquo;searchengines.ru&raquo;)) ((&laquo;=?KOI8-R?B?5s/S1c0gzyDQz8nTy8/X2cgg08nT1MXNwcg=?=&raquo; NIL &laquo;root&raquo; &laquo;searchengines.ru&raquo;)) ((NIL NIL &laquo;master&raquo; &laquo;skazkin.ru&raquo;)) NIL NIL NIL <200911200935.b8f41f512510@forum.searchengines.ru>"") FLAGS () INTERNALDATE &laquo;20-Nov-2009 09:58:38 +0000&raquo; RFC822.SIZE 4045)<br />
. OK Success
</p>
</blockquote>
<p>В целом конечно понятно&nbsp;&mdash; но хотелось бы ещё понятнее</p>
<blockquote>
<p>
. fetch 7 (body[header.fields (from to subject date)])
</p>
</blockquote>
<p>Выбираем только интересные заголовки: </p>
<blockquote>
<p>
* 7 FETCH (BODY[HEADER.FIELDS (from to subject date)] {334}<br />
Date: Fri, 20 Nov 2009 09:58:35 +0000<br />
To: master@skazkin.ru<br />
From: =?windows-1251?q?=D4=EE=F0=F3=EC_=EE_=EF=EE=E8=F1=EA=EE=E2=FB=F5_=F1=E8=F1=F2=E5=EC=E0=F5?=<br />
 <root@searchengines.ru><br />
Subject: =?windows-1251?q?=CE=F2=E2=E5=F2=E8=F2=FC_=ED=E0_=F1=EE=EE=E1=F9=E5=ED=E8=E5_=27=F0=E0=E1=EE=F2=E5=ED=EA=E0_=ED=E0_1_=E1=E0=EA=F1=27?=
</p>
</blockquote>
<p>Прочитаем тело письма: </p>
<blockquote>
<p>
. fetch 7 rfc822.text
</p>
</blockquote>
<p>Вот и оно:</p>
<blockquote>
<p>
* 7 FETCH (RFC822.TEXT {1299}<br />
...сообщение в кодировке windows-1251<br />
. OK Success
</p>
</blockquote>
<p>В целом, как видите, нет ничего сложного чтобы управляться с консольными выводами POP3 и IMAP. </p>
<p>Разница только в том, что IMAP&nbsp;&mdash; понавороченнее, а POP3 обладает весьма урезанным функционалом&nbsp;&mdash; и позволяет читать только почту, которая лежит в папке INBOX.</p>
<p><b>Вспомогательная информация:</b><br />
<a href="http://bobpeers.com/technical/telnet_imap">Хороший мануал по IMAP</a><br />
<a href="http://www.faqs.org/rfcs/rfc3501.html">IMAP RFC</a></p>

<p><a href="http://feedads.g.doubleclick.net/~a/1qOAOkNL-jr8TybEerbhZvEglgE/0/da"><img src="http://feedads.g.doubleclick.net/~a/1qOAOkNL-jr8TybEerbhZvEglgE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/1qOAOkNL-jr8TybEerbhZvEglgE/1/da"><img src="http://feedads.g.doubleclick.net/~a/1qOAOkNL-jr8TybEerbhZvEglgE/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/imap-i-pop-gmail-cherez-telnet-ili-chitat-pochtu-eto-prosto.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Самая эффективная защита от парсинга</title>
		<link>http://www.skazkin.ru/p/samaya-effektivnaya-zashhita-ot-parsinga.html</link>
		<comments>http://www.skazkin.ru/p/samaya-effektivnaya-zashhita-ot-parsinga.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:31:15 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[зашита от парсинга]]></category>
		<category><![CDATA[защита от парсинга]]></category>
		<category><![CDATA[парсинг]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=644</guid>
		<description><![CDATA[Самая эффективная зашита от парсинга (то есть защита от парсинга&#160;&#8212; я кстати вылез в топ гугл по запросу этому)&#160;&#8212; у сайта film.ru . Они просто отключили сайт когда я их начал парсить.
Развожу руками.
]]></description>
			<content:encoded><![CDATA[<p>Самая эффективная <strong>зашита от парсинга</strong> (то есть <strong>защита от парсинга</strong>&nbsp;&mdash; я кстати вылез в топ гугл по запросу этому)&nbsp;&mdash; у сайта film.ru . Они просто отключили сайт когда я их начал парсить.</p>
<p>Развожу руками.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/3vpzDpjctRC6i-FH3kcZfDNPcGU/0/da"><img src="http://feedads.g.doubleclick.net/~a/3vpzDpjctRC6i-FH3kcZfDNPcGU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/3vpzDpjctRC6i-FH3kcZfDNPcGU/1/da"><img src="http://feedads.g.doubleclick.net/~a/3vpzDpjctRC6i-FH3kcZfDNPcGU/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/samaya-effektivnaya-zashhita-ot-parsinga.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps — статичная картинка gif</title>
		<link>http://www.skazkin.ru/p/google-maps-statichnaya-kartinka-gif.html</link>
		<comments>http://www.skazkin.ru/p/google-maps-statichnaya-kartinka-gif.html#comments</comments>
		<pubDate>Wed, 11 Nov 2009 15:31:32 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google map]]></category>
		<category><![CDATA[сохранить картинку]]></category>
		<category><![CDATA[сохранить карту]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=640</guid>
		<description><![CDATA[Копал-копал и нашёл как сделать Google Maps статичной картинкой.
Поддерживается до 640&#215;640, формат&#160;&#8212; .gif
Ссылка вида http://maps.google.com/staticmap?center=Координаты&#038;zoom=Зум&#038;size=ШиринаxВысота&#038;markers=Координаты маркера по желанию
]]></description>
			<content:encoded><![CDATA[<p>Копал-копал и нашёл как сделать Google Maps статичной картинкой.</p>
<p>Поддерживается до 640&times;640, формат&nbsp;&mdash; .gif</p>
<p>Ссылка вида http://maps.google.com/staticmap?center=Координаты&#038;zoom=Зум&#038;size=ШиринаxВысота&#038;markers=Координаты маркера по желанию</p>

<p><a href="http://feedads.g.doubleclick.net/~a/VZNFcUTietn12noU2QYO67UfFFE/0/da"><img src="http://feedads.g.doubleclick.net/~a/VZNFcUTietn12noU2QYO67UfFFE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VZNFcUTietn12noU2QYO67UfFFE/1/da"><img src="http://feedads.g.doubleclick.net/~a/VZNFcUTietn12noU2QYO67UfFFE/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/google-maps-statichnaya-kartinka-gif.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Заменить пробелы регуляркой</title>
		<link>http://www.skazkin.ru/p/zamenit-probely-regulyarkoj.html</link>
		<comments>http://www.skazkin.ru/p/zamenit-probely-regulyarkoj.html#comments</comments>
		<pubDate>Tue, 10 Nov 2009 13:49:56 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[snippet]]></category>
		<category><![CDATA[пробелы]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=637</guid>
		<description><![CDATA[Хозяйке на заметку:
Два+ пробела заменяются не так:

perl -le &#39;use Data::Dumper; my $x = &#171;abc  bca \n \t abc  bca&#187;; $x =~ s/\s{2,}/ /g; print Dumper $x&#39;
$VAR1 = &#39;abc bca abc bca&#39;;

Два+ пробела заменяются так:

perl -le &#39;use Data::Dumper; my $x = &#171;abc  bca \n \t abc  bca&#187;; $x =~ s/[[:blank:]]{2,}/ /g; print [...]]]></description>
			<content:encoded><![CDATA[<p>Хозяйке на заметку:</p>
<p>Два+ пробела заменяются не так:</p>
<blockquote>
<p>perl -le &#39;use Data::Dumper; my $x = &laquo;abc  bca \n \t abc  bca&raquo;; $x =~ s/\s{2,}/ /g; print Dumper $x&#39;<br />
$VAR1 = &#39;abc bca abc bca&#39;;</p>
</blockquote>
<p>Два+ пробела заменяются так:</p>
<blockquote>
<p>perl -le &#39;use Data::Dumper; my $x = &laquo;abc  bca \n \t abc  bca&raquo;; $x =~ s/[[:blank:]]{2,}/ /g; print Dumper $x&#39;<br />
$VAR1 = &#39;abc bca<br />
 abc bca&#39;;</p>
</blockquote>

<p><a href="http://feedads.g.doubleclick.net/~a/grNuTDvGOFafn8EtR-CJNm-p8wY/0/da"><img src="http://feedads.g.doubleclick.net/~a/grNuTDvGOFafn8EtR-CJNm-p8wY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/grNuTDvGOFafn8EtR-CJNm-p8wY/1/da"><img src="http://feedads.g.doubleclick.net/~a/grNuTDvGOFafn8EtR-CJNm-p8wY/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/zamenit-probely-regulyarkoj.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Зачем мне холодильник если я не курю?</title>
		<link>http://www.skazkin.ru/p/zachem-mne-xolodilnik-esli-ya-ne-kuryu.html</link>
		<comments>http://www.skazkin.ru/p/zachem-mne-xolodilnik-esli-ya-ne-kuryu.html#comments</comments>
		<pubDate>Tue, 22 Sep 2009 10:21:25 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[научная фантастика]]></category>
		<category><![CDATA[феерический пиздец]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=634</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><img src="http://img-fotki.yandex.ru/get/3710/wizard7.0/0_470f1_307f9dd_orig" alt="зачем мне холодильник если я не курю" /></p>

<p><a href="http://feedads.g.doubleclick.net/~a/4-ASxnU6Q2BHKBt-fjToSLBIQB0/0/da"><img src="http://feedads.g.doubleclick.net/~a/4-ASxnU6Q2BHKBt-fjToSLBIQB0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/4-ASxnU6Q2BHKBt-fjToSLBIQB0/1/da"><img src="http://feedads.g.doubleclick.net/~a/4-ASxnU6Q2BHKBt-fjToSLBIQB0/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/zachem-mne-xolodilnik-esli-ya-ne-kuryu.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Купить баллы малина</title>
		<link>http://www.skazkin.ru/p/kupit-bally-malina.html</link>
		<comments>http://www.skazkin.ru/p/kupit-bally-malina.html#comments</comments>
		<pubDate>Tue, 22 Sep 2009 10:15:10 +0000</pubDate>
		<dc:creator>Andrew Skazkin</dc:creator>
				<category><![CDATA[Всё остальное]]></category>
		<category><![CDATA[купить баллы малина]]></category>
		<category><![CDATA[малина]]></category>
		<category><![CDATA[нч]]></category>

		<guid isPermaLink="false">http://www.skazkin.ru/?p=632</guid>
		<description><![CDATA[Нет, правда&#160;&#8212; это тест НЧ!
купить баллы малина дёшево 
Вы знаете где купить баллы малина ?  Я вот не знаю где можно купить баллы малина.
]]></description>
			<content:encoded><![CDATA[<p>Нет, правда&nbsp;&mdash; это тест НЧ!</p>
<p><strong>купить баллы малина дёшево</strong> </p>
<p>Вы знаете где купить баллы малина ?  Я вот не знаю где можно купить баллы малина.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/QcsgPOuB2enpsD9iYd-bbfDyTkc/0/da"><img src="http://feedads.g.doubleclick.net/~a/QcsgPOuB2enpsD9iYd-bbfDyTkc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QcsgPOuB2enpsD9iYd-bbfDyTkc/1/da"><img src="http://feedads.g.doubleclick.net/~a/QcsgPOuB2enpsD9iYd-bbfDyTkc/1/di" border="0" ismap="true"></img></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.skazkin.ru/p/kupit-bally-malina.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.794 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-03-09 17:31:24 -->
