Growl вообще и Mail в частности

thumb_growl_0.png
Growl — это утилита, показывающая уведомления о событиях разных программ. Например, когда завершена закачка в Transmisson, сообщение в Adium, или пришли новые RSS в Safari. Утилита очень настраиваемая и удобная. Must have. Но у него есть некоторые проблемы с Apple Mail. Об этом ниже.

Growl изначально поддерживает очень много приложений. Работа с ним осуществляется через системные настройки.

growlРазобраться в нем легко, настроить тоже. Но сейчас — о Mail.

Mozilla Thunderbird имеет очень удобну функцию оповещений — когда приходит письма, в верхнем правом углу появляется панель, на которой написано от кого пришло письмо и его заголовок. Изначально в Mail такой функции нет, но её можно добавить при помощи Growl. Для этого нужно скачать собственно утилиту, установить её, а из папки Extras в скаченном образе, запустить инсталятор плагина GrowlMail. Там не только этот плагин, их несколько и к каждому есть инструкция.

Но есть проблема. Если у вас стоит Safari4-beta, установка GrowlMail вызовет падение Mail’а при обращении к Growl. Связано это с новым фреймворком webkit. Решение этой проблемы я нашел тут.

Суть его заключается в том, что вы создаете AppleScript, который будет отправлять Growl’у сообщения из Mail.

Делается это так:

1. Открываем редактор скриптов (Applications/AppleScript) и вставляем туда вот этот скрипт:

    tell application "GrowlHelperApp"
       set the allNotificationsList to {"Mail", "Junk Mail"}
       set the enabledNotificationsList to {"Mail", "Junk Mail"}
       register as application "Growl Mail Rule" all notifications allNotificationsList ¬
          default notifications enabledNotificationsList ¬
          icon of application "Script Editor"
    end tell


using terms from application "Mail"
on perform mail action with messages messageList
repeat with thisMessage in messageList
set theSender to sender of thisMessage
set theSubject to subject of thisMessage
if junk mail status of thisMessage is true then
set noteType to "Junk Mail"

else
set noteType to "Mail"
end if
tell application "GrowlHelperApp" to notify with name noteType ¬
title noteType description ¬
"From: " & theSender & return & return & "Subject: " & theSubject ¬
application name "Growl Mail Rule"
end repeat
end perform mail action with messages
end using terms from

2. Запускаем его один раз для инициализации.

3. Сохраняем. Куда и под каким именем не важно, но пожалуй лучше в скрипты Mail’а (Library/Scripts/Mail Scripts) под названием «Growl».

4. Открываем настройки почты, раздел «Фильтры». Для каждого сообщения запускаем AppleScript:

growl_mail.png

Вот и всё. Настраивать его можно будет из настроек Growl’а.

Главный минус такого метода: клик на оповещение не будет перебрасывать вас к самому сообщению. Но это лучше, чем ничего.

ВНИМАНИЕ!

Если у вас (как у меня) бардак в почтовом ящике (например, 8 тысяч писем, 2 тысячи непрочитанных и 300 новых), то будьте готовы к тому, что при первом запуске будете оооочень долго наблюдать сменяющие друг друга уведомления. Пока он не перелопатит все непрочитанные (на сколько я понял) — он не успокоится. Поэтому прежде чем ставить таким образом оповещения — наведите порядок в почте

Скачать Growl можно тут.

К знатокам AppleScript (если таковые найдутся).

Напишите плиз, как можно модифицировать скрипт, чтобы он в оповещении отображал кусок сообщения и (если возможно), чтобы клик на него вёл к сообщению.