1 (01.04.2012 00:57 отредактировано Серый)

Тема: Уведомление о получении нового email по протоколам POP3 или IMAP.

Всем, добрый день.
Хочу с вами поделиться результатом моего труда.
Почту я читаю в браузере. Задался я целью не заходить каждый раз в браузер, чтобы её проверить, а настроить уведомление так, чтобы независимо от того, что я делаю на компьютере я бы узнал о приходе новой почты. В Conky есть скрипт для этого, но во первых я нашел только для gmail (почему-то нет для yandex.ru, mail.ru и т.д.), а во вторых никто на Conky постоянно не смотрит (несмотря на её красоту). Следовательно оперативно не узнаешь что почта пришла (даже если настроить Conky сверху или снизу, как я видел часто на принтскринах, или даже если добавить запуск звукового файла в фоне по приходу почты, что мне не нравится). Ставить какой-то email клиент (например предустановленный в кранче Claws Mail и держать его постоянно включенным, чтобы с его помощью получить уведомление (например в трее) нелогично, особенно если на компьютере мало ресурсов и особенно если почту читаешь в браузере, а не в клиенте.
Пересмотрел я много пакетов для этого. Mail Notifier и т.д. С какими-то я не справился с настройкой, какие-то мне не подошли, какие-то я не смог установить (много зависимостей и т.д).

После того, как нашел пакет getmail я решил сам сделать такое уведомление.

Скачал пакет getmail4_4.14.0-2_all.deb отсюда:
http://packages.ubuntu.com/lucid/getmail4

Он потребовал другой пакет python-support, скачал отсюда:
http://packages.ubuntu.com/lucid/python-support

Оба установил. После того, как разобрался с мануалом сделал следующее.
Создал директории:
~/.getmail
~/.getmail/cur
~/.getmail/new
~/.getmail/tmp

Создал файл ~/.getmail/getmailrc с таким содежимым:

[retriever]
type = SimplePOP3Retriever
server = pop.yandex.ru
username = ***********
password = ***********

[destination]
type = Maildir
path = ~/.getmail/

server, username и password соответственно нужно поставить ваши значения, от вашей почты.

Это, что касается настройки getmail. Дальше придумал следующее:
Создал и сделал исполняемым файл ~/.getmail/gm1
Его содержимое:

rm -f ~/.getmail/new/*
if getmail | grep msg > null
then xmessage -bg yellow -geometry -0+0 -button ok -fn -*-terminus-*-*-*-*-14-*-*-*-*-*-*-* _new_mail_
fi

1-я строка: удаление ранее сохраненных писем в папке ~/.getmail/new/ (!!! с командой rm максимум внимания!, одна ошибка в пути к папке или файлу и удалите не то, что нужно, по умолчанию она не спрашивает можно удалять или нет!!!)
2-я строка: условие, если в выводе getmail присутствует ключевое слово msg - значит как минимум одно письмо в ящике есть
3-я строка: при выполнении условия во второй строке, запустить окно xmessage c текстом _new_mail_
4-я строка: конец условия.

Насчет параметров запуска окна xmessage информацию взял отсюда:
http://www.inp.nsk.su/~bolkhov/teach/in … ts.ru.html

Дальше добавил в конфиг Conky в конце файла ~/.conkyrc следующую строку:

${execi 300 ~/.getmail/gm1}

т.е. запуск (execi) каждые 5 минут (параметр 300, в секундах) ранее созданного исполняемого файла ~/.getmail/gm1 (единицу в конце имени файла добавил, чтобы не было ничего общего с вероятным пакетом gm)

В результате, при появлении в моём почтовом ящике нового письма у меня появляется уведомление (желтый цвет поставил, чтобы заметно было)
Когда все окна свёрнуты - то выглядит так:
http://storage7.static.itmages.ru/i/12/0226/s_1330264235_5369294_8c3b6d4289.png

На фоне открытого браузера это выглядит так.
http://storage8.static.itmages.ru/i/12/0226/s_1330264261_6904758_e22694eec3.png

Цвет и месторасположение окна можно менять, параметры для xmessage -bd и -geometry.

Это метод можно использовать для уведомления о новой почте любого почтового ящика, поддерживающего протоколы POP3 или IMAP.
В планах также сделать:
1. появляющееся окно не перекрываемым другими окнами
2. по нажатию в этом окне кнопки "ok" запуск браузера со страницей почты (сейчас по нажатию кнопки "ok" окно просто закрывается)

Написал всё подробно, может кому пригодится. Ещё раз осторожно с командой rm, если её не использовать то будут накапливаться письма в папке ~/.getmail/new/ а это не нужно, т.к. цель была сделать уведомление о новой почте.

2 (26.02.2012 19:45 отредактировано ZEN)

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

Попробуй notify-send вместо xmessage. К тому же notify в кранче из под коробки есть, а для утилиты notify-send требуется установить лишь пакет  libnotify-bin ( ~80Кб ). Из плюсов - не придется мучиться с подборкой темы оформления.

3 (26.02.2012 22:47 отредактировано Серый)

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

ZEN, спасибо за notify-send, выглядит просто отлично по сравнению с xmessage, но 2 проблемы пока решить не могу:
1. щелчек по ссылке в выплывающем окне запускает мозиллу, а меня опера по дефолту в системе, определял по дефолту с помощью утилиты update-alternatives --all
2. не могу менять цвет фона и шрифта (у меня темная тема, и это окно тоже с темным фоном, хочу настроить желтый фон, он заметный), возможно нужно вставить какие-то теги из html, пробовал по разному - пока не идёт

а так красота, под моё разрешение экрана настроил так:

notify-send -h int:x:1024 -h int:y:8 --expire-time=3600000 ':-)' '<a href="https://mail.yandex.ru/lite/inbox"><b>New mail</b></a>'

также выявил ещё один глюк, если сразу после загрузки conky есть почта, то запущенное окно xmessage блокирует conky до тех пор пока не закроешь окно, потом все последующие запуски xmessage не блокируют conky, буду разбираться почему,
отпишите кто знает как решить эти проблемы, спасибо

4

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

По поводу тем, я в xfce запускаю xfce4-notifyd-config для настройки. А там по дефолту 3 темы
[email protected]:~$ find /usr/share/themes -iname *notify*
/usr/share/themes/ZOMG-PONIES!/xfce-notify-4.0
/usr/share/themes/Smoke/xfce-notify-4.0
/usr/share/themes/Default/xfce-notify-4.0
можно нужную подправить.
Но по дефолту в кранче стоит notification-daemon, а вот как у него устроено я подсказать не могу, не в курсе. Могу предложить xfce4-notifyd, там зависимости не большие.

Теперь что касается ссылок. Тут тебе скорее всего придется смотреть комплект утилит xdg-*
Для проверки
xdg-open www.google.ru
если откроется в фаерфоксе, значит его копать на предмет установки браузера по умолчанию,

5

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

буду разбираться,
а xdg-open www.google.ru открывается в опере, только с добавкой http://, без неё ошибку даёт

[email protected]:~/.zx$ xdg-open www.google.ru
Warning: unknown mime-type for "www.google.ru" -- using "application/octet-stream"
Error: no such file "www.google.ru"
[email protected]:~/.zx$ xdg-open http://www.google.ru
opera: Activated running instance
[email protected]:~/.zx$ 

6

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

[offtop]
так классно сделал, сижу играю, тут выплывает окно что почта пришла, захожу в почту, уведомление с форума, доволен как слон, не надо всё время почту проверять
[/offtop]

7

Re: Уведомление о получении нового email по протоколам POP3 или IMAP.

ZEN пишет:

Попробуй notify-send вместо xmessage.

ZEN, дружище! Не поверишь, я тебе так благодарен за наводку на notify-send! Уже несколько месяцев на моем буке крутится схема уведомления о новой почте на базе notify-send, которую ты мне подкинул! Я почему-то думал, что уже плюсовал тебе за это. Сейчас посмотрел - оказывается нет. ZEN, плюс! Сейчас у меня когда приходит новая почта выглядит так:

http://storage9.static.itmages.ru/i/12/0514/s_1337014732_2653324_d94d85e344.png

Вообщем мне очень нравится! Да и вернулся на браузер по умолчанию. Так теперь по ссылке открывается мозилла. Всё ок!