<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Danil's* &#187; Email</title>
	<atom:link href="http://danil.625.ru/category/it/email/feed/" rel="self" type="application/rss+xml" />
	<link>http://danil.625.ru</link>
	<description>* У Данилы</description>
	<lastBuildDate>Thu, 30 Jul 2009 15:03:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1-beta1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Помечаем спам в теме письма. Exiscan.</title>
		<link>http://danil.625.ru/2008/02/11/spam-in-subject/</link>
		<comments>http://danil.625.ru/2008/02/11/spam-in-subject/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 13:24:10 +0000</pubDate>
		<dc:creator>Danil</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[ИТ]]></category>
<category>exim</category><category>spam</category>
		<guid isPermaLink="false">http://danil.625.ru/2008/02/11/spam-in-subject/</guid>
		<description><![CDATA[Я использую Exiscan для проверки электронной почты на спам и вирусы.
В документации по Exiscan есть пример с добавлением строчки *SPAM* в начало темы письма с помощью системных фильтров Exim.
Вот только в русских письмах следует сохранить кодировку (по умолчанию Exim полностью раскодирует строку темы письма), а то начинаются бНОПНи и бТЕОДБы. Поэтому вместо $h_subject лучше использовать $rh_subject (raw).
В [...]]]></description>
			<content:encoded><![CDATA[<p>Я использую Exiscan для проверки электронной почты на спам и вирусы.</p>
<p>В <a target="_blank" href="http://duncanthrax.net/exiscan-acl/exiscan-acl-examples.txt">документации по Exiscan</a> есть пример с добавлением строчки <em>*SPAM*</em> в начало темы письма с помощью системных фильтров Exim.</p>
<p>Вот только в русских письмах следует сохранить кодировку (по умолчанию Exim полностью раскодирует строку темы письма), а то начинаются бНОПНи и бТЕОДБы. Поэтому вместо $h_subject лучше использовать $rh_subject (<em>raw</em>).</p>
<p>В итоге в ACL получается следующее:</p>
<p><code>warn message = X-New-Subject: *SPAM* $rh_subject:<br />
     spam = nobody/defer_ok</code></p>
<p>А в системном фильтре вот так:</p>
<p><code>if "${if def:header_X-New-Subject: {there}}" is there<br />
then<br />
   headers remove Subject<br />
   headers add "Subject: $rh_X-New-Subject:"<br />
   headers remove X-New-Subject<br />
endif</code></p>
<p>Если я что-то упустил или неправильно понял, буду рад услышать замечания.</p>
]]></content:encoded>
			<wfw:commentRss>http://danil.625.ru/2008/02/11/spam-in-subject/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>IMAP и много-много писем</title>
		<link>http://danil.625.ru/2008/02/06/imap-many-messages/</link>
		<comments>http://danil.625.ru/2008/02/06/imap-many-messages/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 06:21:36 +0000</pubDate>
		<dc:creator>Danil</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[ИТ]]></category>
<category>imap</category><category>полезное</category>
		<guid isPermaLink="false">http://danil.625.ru/2008/02/06/imap-i-mnogo-mnogo-pisem/</guid>
		<description><![CDATA[На днях получилось так, что мне поступило несколько десятков тысяч писем (от антивируса). Примерно 60.000, которые нужно было ещё и выборочно удалить (по заголовку).
Ни штатный почтовик Thunderbird, ни The Bat! не смогли с ними справиться. Первый просто надолго зависал и ждать полдня его ответа было, на мой взгляд, бесперспективно, а второй либо тоже зависал, либо [...]]]></description>
			<content:encoded><![CDATA[<p>На днях получилось так, что мне поступило несколько десятков тысяч писем (от антивируса). Примерно 60.000, которые нужно было ещё и выборочно удалить (по заголовку).</p>
<p>Ни штатный почтовик Thunderbird, ни The Bat! не смогли с ними справиться. Первый просто надолго зависал и ждать полдня его ответа было, на мой взгляд, бесперспективно, а второй либо тоже зависал, либо принимал заголовки катастрофически медленно.</p>
<p>Спасла Она. <a target="_blank" href="http://www.opera.com">Opera</a> <img src='http://danil.625.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Система фильтров довольно удобна и позволила удалить (не)нужные письма из разных папок.</p>
]]></content:encoded>
			<wfw:commentRss>http://danil.625.ru/2008/02/06/imap-many-messages/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Спам: автоматический белый список</title>
		<link>http://danil.625.ru/2007/07/30/auto-whitelist/</link>
		<comments>http://danil.625.ru/2007/07/30/auto-whitelist/#comments</comments>
		<pubDate>Mon, 30 Jul 2007 18:48:43 +0000</pubDate>
		<dc:creator>Danil</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[ИТ]]></category>
<category>exim</category><category>php</category><category>spam</category>
		<guid isPermaLink="false">http://danil.625.ru/2007/07/30/auto-whitelist/</guid>
		<description><![CDATA[Несмотря на использование SpamAssassin, человеческий фактор иногда берёт своё: некоторые пишут письма без темы, или же тема странным образом закодирована; некоторые присылают коммерческое предложение, оформленное как спам; иногда нужные рассылки оформлены &#8220;не так&#8221; по мнению SpamAssassin&#8217;а.
Я согласен, что можно до посинения настраивать спам-фильтр, чтобы он всё распознавал правильно, но разве можно учесть всё? И есть ли [...]]]></description>
			<content:encoded><![CDATA[<p>Несмотря на использование SpamAssassin, человеческий фактор иногда берёт своё: некоторые пишут письма без темы, или же тема странным образом закодирована; некоторые присылают коммерческое предложение, оформленное как спам; иногда нужные рассылки оформлены &#8220;не так&#8221; по мнению SpamAssassin&#8217;а.</p>
<blockquote><p>Я согласен, что можно до посинения настраивать спам-фильтр, чтобы он всё распознавал правильно, но разве можно учесть всё? И есть ли хоть один, который даст 0% false-positive? Данный способ можно использовать для того, чтобы почта от определённого адресата не попала в спам.</p></blockquote>
<p>Я для начала выбрал такое решение: адреса, по которым отправляют почту &#8220;свои&#8221; пользователи из внутренней сети, заносятся в белый список. Туда же администратор может внести определённые домены. При этом, если от пользователя исходит подтверждение прочтения спам-письма, то такие письма не берутся во внимание (во всяком случае в Exim у таких bounce-писем поле отправителя пустое, и это служит критерием того, что такого адресата не надо заносить в белый список).</p>
<blockquote><p>Далее я привожу пример с использованием Exim и реализацию auto-whitelist на PHP с PEAR-DB, а также предполагаю, что читатель знает, как настроить Exim на работу с SQL-сервером, и разбирается в его роутерах и транспортах.</p></blockquote>
<p>Итак, вот как это работает:</p>
<p><strong>1.</strong> Таблица базы данных для хранения информации об адресах:</p>
<p><code>CREATE TABLE `whitelist` (<br />
  `id` int(11) NOT NULL auto_increment,<br />
  `sender` varchar(64) NOT NULL,<br />
  `origin` varchar(64) NOT NULL,<br />
  `date_add` datetime NOT NULL,<br />
  `type` tinyint(4) NOT NULL,<br />
  PRIMARY KEY  (`id`),<br />
  UNIQUE KEY `sender` (`sender`)<br />
);</code></p>
<p><em>sender</em> &#8211; собственно, адрес или домен отправителя;<br />
<em>origin</em> &#8211; от кого (изнутри) исходило письмо, из-за которого данный отправитель попал в базу;<br />
<em>type</em> &#8211; если равен 1, то это только домен; если 2 &#8211; полный email;</p>
<p><strong>2.</strong> Списки адресов и доменов в Exim:</p>
<p><code>domainlist white_domains = ${lookup mysql{SELECT sender \<br />
   FROM whitelist \<br />
   WHERE type=1 AND sender='${quote_mysql:$sender_address_domain}'}{$value}fail}<br />
addresslist white_senders = ${lookup mysql{SELECT sender \<br />
   FROM whitelist \<br />
   WHERE type=2 AND sender='${quote_mysql:$sender_address}'}{$value}fail}</code></p>
<p><strong>3.</strong> Роутер, который задействуется перед обработкой исходящей почты:</p>
<p><code>whitener:<br />
  driver = dnslookup<br />
  domains = ! +local_domains<br />
  ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8<br />
  transport = while_list_parse<br />
  unseen</code></p>
<p><strong>4.</strong> Соответствующий транспорт:</p>
<p><code>while_list_parse:<br />
  driver = pipe<br />
  command = /usr/local/sbin/white_list.php<br />
  user = exim</code></p>
<p><strong>5.</strong> Теперь один из главных моментов: стадия проверки. Перед проверкой на спам в acl_check_content вставляем следующие правила:</p>
<p><code># Accept whitelist domains<br />
accept sender_domains = +white_domains<br />
# Accept whitelist senders<br />
accept senders = +white_senders</code></p>
<p><strong>6.</strong> И окончательный момент &#8211; скрипт white_list.php, который добавляет отправителя в базу данных; расположен по <a href="http://danil.625.ru/wp-content/uploads/2007/07/white_listphp.txt" title="white_listphp.txt">этой ссылке</a>.</p>
<p>Готов выслушать замечания, в том числе идеологического характера <img src='http://danil.625.ru/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danil.625.ru/2007/07/30/auto-whitelist/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
