Прикручиваение спамообороны к личной почте
У меня есть мой личный email — ivan@bessarabov.ru. Мне безумно нравится то, что у меня есть ящик вида имя@фамилия. Почтовй сервер, которы обслуживает этот ящик, я настраивал сам. Я совершенно не профессиональный админ, но чтобы иметь представление о работе почтовых серверов и как все это функционироует, я базовенько разобрался с postfix-ом и настроил сервер.
Как все работает — меня абсолютно устраивает, кроме одного — спам. На мой ящик приходит невороятное количество спама. Просто феерическое количество спама.
- Сначала я разгребал спам вручную
- Потом прикрутил spamassassin
- Spamassassin резко уменьших количество спама, но писем по 200-300 в день, все равно проскакивали. Я честно учил spamassassin, но он, собака, все равно пропускал очень много спама (Не хочу его ругать, я скорее всего просто не умею его “готовить”).
- Я уже реально подумывал прикрутить свой ящик к google apps (я уже давно прикрутил свой другой домен, bessarabova.ru, к этой системе), но мне все не хотелось это делать
- Но тут натыкаюсь на пост Тёмы, что он юзает « Спамооборону» и очень ей доволен.
- Чуть больше меняца я обдумывал идею о том, как прикрутить спамооборону к моему почтовому серверу, а потом взял и сделал.
Далее в этом посте я отпишу, как я все это настраивал, а пока могу сказать, что я мега доволен результатом. За несколько дней ни одно спамовское письмо (ни одно!) не пришло, и лишь три были по ошибки помечены как спам (как выясняется не любит yandex mon.itor.us).
Как я все это настраивал
Из всех 3-х вариантов, которые предлагает «
Спамооборона», мне больше всего нравится 3-ий:

Первая попытка
Мне очень не хочется заводить какой-то секретный ящик, как рекомендует яндекс, поэтому я придумал (ну не совсем придумал, конечно, Тёма как раз об этом-то и писал) такую схему:
- Приходит письмо на мой почтоывй сервер, на мой ящик ivan@bessarabov.ru
- Если письмо еще яндексом не проверялось, то оно отправляется на мой ящик на yandex (проверка осуществется по специальному флагу в заголовке писмьа)
- Если же писмьо проверилось яндексом, то положить его ко мне в почту, в тот же самый ящик ivan@bessarabov.ru
На моем почтовом сервере работает procmail - чтобы раскладывать письма по папочкам. В файл ~/.procmailrc я создал следющее правило:
# В том случае, если нет хедера X-Yandex-Spam, перекидываю письмо на yandex
:0
* ! ^X-Yandex-Spam:
! ivanbessarabov@yandex.ru
В настройках же ivanbessarabov@yandex.ru я прописал правило форвардить все на мой ящик ivan@bessarabov.ru.
Все настроил — запускаю — такая схема не работает. Ошибка: “mail forwarding loop for ivan@bessarabov.ru”, что вполне логично.
Вторая попытка, она же успешная и, соответственно, последняя
Почта на моем почтовом сервере настроена очень просто — нет никаких виртуальных юзеров, почта доставляется реальным пользователям сервера. Мой логин на сервере — bessarabov (что не удивительно, зная мою любовь к своей фамилии =). Т.е. почта приходит на ivan@bessarabov.ru, а на сервере для ivan прописан алиса bessarabov. Я настроил пересылку писем с ящика ivanbessarabov@yandex.ru на ящик bessarabov@bessarabov.ru и все заработало как надо!
При такой настроки возникла проблема, что поломалась доставка почты для bessarabov. Теперь отправка сообщений на bessarabov@bessarabov.ru вызывает ошибку “mail forwarding loop”, но это для меня не важно =)
Обнаружилась одна интересное свойсво почты яндекса: мой сервер пытается переслать спамовское письмо на яндекс ящик, а яндекс каким-то образом уже на этапе получения знает, что это спам и не принимает это письмо:
This is the mail system at host bessarabov.ru.
I’m sorry to have to inform you that your message could not
be delivered to one or more recipients. It’s attached below.
For further assistance, please send mail to postmaster.
If you do so, please include this problem report. You can
delete your own text from the attached returned message.
The mail system
Content-Policy reject msg: Message rejected under suspicion of spam.;
S3768472AbZBKNnm (in reply to end of DATA command)
Из множества писем, которые я пропускаю через яндекс, достаточно много генерят письмо с такой ошибкой, поэтому я написал правило procmail, которое убивает такого рода письма:
# Сразу удаляю письма, которые яндекс не принял
:0B:
* Diagnostic-Code: smtp; 554 5.7.1 Content-Policy reject msg: Message rejected
/dev/null
После того, как я все это дело настроил и денечек посмотрел, как это работает, мне стало страшно, что яндекс меня забанит (я пропускаю через яндекс около двух тысяч писем в день), поэтому отписал в support, но получил очень позитивненький ответ, что мне не стоит беспокоится.
Итак все работет, спама нет. Ура, товарищи!
Еще раз выражаю свой респект создателям яндексу, за то, что предоставлили миру такой чудестный инструмент и подарили мне немного времени, которое я раньше тратил на разгребание спама. Спасибо! =)
trac-post-commit-hook
Было
При разработки программ с использование trac и svn очень удобно в коментариях к комитам в svn писать некий текст и дублировать его в тикете.
Т.е. при коммите:
svn ci -m "#123 - полностью решил тикет"
А в комменте к тикету писать:
[334] - полностью решил тикет
Т.е. чтобы в svn была ссылка на тикет, а в тикте - ссылка на svn. Это очень удобно использовать, но не удобно делать (понятно, что это делается с помощью copy&paste, но все равно лениво).
Стало
Можно настроить svn таким образом, чтобы после комита автоматически выполняллось некоторое действие. Существует вот такой скрипт: http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook - он смотрит, что есть в комментарии к комиту, вычленяет оттуда команду и либо пишет коммент к тикету, либо пишет коммент и закрывает тикет.
Т.е. использование этого скрипта, немного упрощает работу.
Как использовать
Вот такая комманада:
$ svn ci -m "re #1323 - тестирование тикета"
В тикет #123 пишет:
(In [334]) re #1323 - тестирование тикета
Т.е. формат коммента для svn следующий:
Комманда #1
Команды есть следующие:
- references, refs, addresses, re, see - любвая из этих комманд записывает ссылку на коммит и svn комментарий в тикет
- close, closed, closes, fix, fixed, fixes - то же самое + еще и закрывает тикет
Advanced команды можно узнать в докуменации к скрипту: http://trac.edgewall.org/browser/trunk/contrib/trac-post-commit-hook
Как настроить
Далее вместо $SVN нужно везде поставлять путь к svn-у (например /var/svn/test), а вместо $TRAC — путь к trac environment (например /var/trac/test). В тексте выделено курсивом.
1.
Создается файл $SVN/hooks/post-commit со следующим содержанием:
#!/bin/sh
REPOS=”$1″
REV=”$2″
TRAC_ENV=”$TRAC“
/usr/bin/python /usr/local/src/trac/contrib/trac-post-commit-hook \
-p “$TRAC_ENV” -r “$REV”
2.
Выставляем правильные права на файл
$ sudo chmod 755 $SVN/hooks/post-commit
3.
Получаем сам скрипт:
user@server:/usr/local/src/trac/contrib$ sudo wget http://trac.edgewall.org/export/7864/trunk/contrib/trac-post-commit-hook
Unix Timestamp “Красивый номер”
На следующей неделе значение времени unix будет очень красивео число: 1234567890.
Народ веселится: даже countdown timer для этого сделали: http://coolepochcountdown.com/ (домен зарегистрирован 3 февраля) =)
Мультитач на веб страницах (iPhone only)
Оказывается существует технология, которая позволяет создавать web страницы, на которых можно использовать мультитиач.
Этот сайт может нанести вред Вашему компьютеру.
Гугль жжот =)

- UPDATE (18:13) — все заработало
- UPDATE (18:16) — все опять сломалось
- UPDATE (18:16) — почти починилось — только один запрос из где-то 5-и отображает предупреждения для всех сайтов (имхо на некоторых бакэндах починено, на некоторых еще нет)
- UPDATE (18:31) — вроде все нормализовалось
Horstman’s Law of Project Management
Не могу не прорекламировать отличный подкаст: Manager tools. Наткнулся на него в выпуске PM Podcast.
Цитирую фрагмент (записал с подкаста и немного преобразовал устную речь в письменную):
An unusual way to think about this is that tasks are like trees and projects are groups of tasks. That all we are - the projects are just groups of tasks, so they are just like forests. Forest is just a name for a group of trees. Without trees there is no forest. The word forest is just abstraction designed to help us to talk about groups of trees. Without trees there would be no forest, but without forest (which is an abstraction) there still be trees. We are not saying you can’t save the hundreds of hours on a project by seeing the forest rather than the trees, but you don’t cut down the forest by looking at the forest even with the most efficient technology made to look at forest in the world. You cut down the forest one tree at a time. Tasks are more important than the management of those tasks. Work is more important than the management of work.
Как по ubuntu заставить thunderbird проверять обноволение imap почты во всех папках
Если письма сортируются на стороне сервера (что очень удобно), то в thunderbird со стандартными настройками нельзя увидеть, появлились ли письма в каких-то папках, кроме как в inbox. Единственный способ это выяснить — “прощелкать” все папки. Легчится элементарно: в файл user.js пишется:
user_pref("mail.check_all_imap_folders_for_new", true);
Изначально файл user.js не существует (нужно создать). В ubuntu он располагается в папке: /home/user/.mozilla-thunderbird/xxxxxxxx.default/
Ссылки из трака на другие траки
Система trac сейчас не позволяет работать со многими проектами в рамках одной инсталляции (*). Сейчас у меня есть несколько траков в которых я работаю (отдельный трак для каждого проекта). У меня есть специальный трак (он синхронизируется с пальмом), в котором я веду gtd списки. В этом траке я указываю на тикеты в других траках. Я хочу просто написать номер тикета и чтобы он сразу стал ссылкой на нужный мне тикет в правильном траке.
Для этого в траке существует очень удобная штука — InterTrac. В конфиге нужно написать:
[intertrac]
# - Пример прописывания алиаса:
t = trac
# - Ссылка на внешний Трак:
trac.title = Edgewall’s Trac for Trac
trac.url = http://trac.edgewall.org
После этого пишем в вики t:#1 и получаем правильную ссылку на тикет 1.
* вообще-то трак, конечно позволяет работать с несколькими проектами, вот пример, как в одном траке ведется работа над кучей плагинов: http://trac-hacks.org/. Возможность работы с множеством проектов в рамках одной инсталляции запланировано на релиз 1.0, правда даты этого релиза пока даже близко нет.
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| « Jun | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||
