Как я могу настроить уведомления о новой почте в Alpine?

11

Я использую Alpine в качестве основного почтового ридера. Хотя я провожу большую часть своего дня в терминале или Emacs, было бы неплохо получать красивые уведомления о новой почте, используя notify-bin. Есть ли способ настроить alpine для запуска специальной команды при получении новой почты?

Стивен Д
источник

Ответы:

7

В Alpine есть опция конфигурации «NewMail FIFO Path». Цитирую помощь:

Возможно, Alpine создаст специальный файл FIFO (также называемый именованным каналом), где он будет отправлять однострочное сообщение при каждом получении нового сообщения в текущей папке, INBOX или любых открытых папках Stayopen. Для защиты от двух разных Alpine, одновременно записывающих данные в один и тот же FIFO, Alpine будет создавать FIFO и записывать в него, только если он еще не существует.

Итак, я установил параметр '/tmp/alpine.fifo' и написал простую утилиту для чтения сообщений из FIFO и вызова 'notify-send':

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

#define FIFO_NAME "/tmp/alpine.fifo"

int main(void)
{   
    char s[512];
    char cmd[512];
    int num;
    int fd = open(FIFO_NAME, O_RDONLY);
    do {
        if ((num = read(fd, s, 300)) == -1)
            perror("read");
        else {
            s[num] = '\0';
            sprintf(cmd, "notify-send -t 0 'New mail:' '%s'", s);
            system(cmd);
        }
    } while (num > 0);

    return 0;
}

Сохраните его в alpine-notifier.c и скомпилируйте с помощью команды 'gcc alpine-notifier.c -o alpine-notifier'. Запустите «alpine-notifier» после запуска alpine. Наслаждайтесь всплывающими уведомлениями.

Linulin
источник
хорошее решение :-)
echox
Потрясающие. Я написал небольшой сценарий оболочки, чтобы сделать то же самое.
Стивен Д
1
@steven: я бы проголосовал за это, если вы будете любезны поделиться им. :-)
Малабарба
Неважно, я в итоге тоже написал.
Малабарба
4

Обновление :
мой предыдущий ответ меня не удовлетворил, поэтому я значительно улучшил сценарий и сделал для него репозиторий github .

Теперь вам не нужно запускать скрипт после запуска alpine, он позаботится обо всем за вас. Суть сценария в основном та же (я только немного улучшил синтаксический анализ):

#! /bin/bash
while read L; do
    n=$(($n + 1))  
    if [[ n -gt 3 ]]; then      
        name=`echo "$L"  | sed 's/  \+/\t/g;s/^\(+ \)\?\([^\t]*\)\t\([^\t]*\)[\t ].*/\2/'`
        subject=`echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\(Re: \?\)\?\([^\t]*\)[\t ].*/\3/'`
        box=`echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\([^\t]*\)[\t ]\([^\t]*\).*/\3/'`
        notify-send -t 10000 $iconcommand "Mail from $name" "$subject\n-\nIn your $box."
    fi
done < <(cat alpine.fifo)

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

Malabarba
источник
1
Брюс, спасибо, что поделился сценарием! Теперь я знаю, как читать и обрабатывать сообщения из FIFO, сохраняя его открытым в оболочке. Не смог разобраться при настройке уведомителя для себя :)
Линулин
@Linulin Круто. =) К сожалению, фильтры, которые я использовал для настройки, contentи nameв некоторых случаях немного глючные, что немного глупо, так как именно по этой причине я вообще опубликовал ответ. = P
Малабарба
Замечательно видеть, что оболочка используется так хорошо. Спасибо за размещение на github. Браво!
птенцы
1

Разве вы не можете использовать специализированный инструмент почтовых уведомлений, такой как Gnubiff, mail-messages или kbiff?

fschmitt
источник
Я хотел бы использовать почтовое уведомление для достижения чего-то подобного, однако я не могу найти никакой документации о том, как настроить команду mail-messages-new-mail.
Джонатан Нойфельд
1

Невозможно настроить «уведомление о новой почте» Alpine.

Там нет такой опции, упомянутой в документации конфигурации .

Также вот цитата из списка рассылки от Эдуардо Чаппа:

Я заметил, что alpine выдает визуальное предупреждение в терминале gnome, мигая экраном, когда приходит новое письмо. Есть ли способ настроить предупреждение, чтобы, например, оно воспроизводило звук или что-то еще?

[..]

Alpine, как вы уже догадались, будет только подавать звуковые сигналы. В Web Alpine можно отправить файл для воспроизведения (в браузер) для уведомления о новой почте. В Unix, Mac или Windows Alpine такой функции нет.

Ваши варианты сейчас:

  • написать запрос на добавление в список рассылки alpine-info
  • получить исходники и написать патч
  • использовать внешний инструмент, такой как Mail Notification

И процитировать разработчика моего почтового клиента favit:

Все почтовые клиенты отстой ...

:-)

echox
источник