Jak mogę dostosować powiadomienia o nowej poczcie w alpejskim?

11

Używam alpine jako mojego głównego czytnika poczty. Podczas gdy większość dnia spędzam w terminalu lub Emacsie, miło byłoby otrzymywać ładne powiadomienia o nowej poczcie za pomocą powiadomień-bin. Czy jest jakiś sposób, aby skonfigurować alpine do uruchamiania niestandardowego polecenia po otrzymaniu nowej poczty?

Steven D.
źródło

Odpowiedzi:

7

W alpejskim jest dostępna opcja konfiguracji „NewMail FIFO Path”. Cytując pomoc:

Być może Alpine utworzy specjalny plik FIFO (zwany także nazwanym potokiem), w którym będzie wysyłać wiadomość w jednym wierszu za każdym razem, gdy nowa wiadomość zostanie odebrana w bieżącym folderze, skrzynce odbiorczej lub w dowolnym otwartym folderze Stayopen. Aby chronić się przed dwoma różnymi Alpine, które piszą do tego samego FIFO, Alpine utworzy FIFO i napisze do niego, jeśli jeszcze nie istnieje.

Ustawiłem więc opcję na „/tmp/alpine.fifo” i napisałem proste narzędzie do odczytywania wiadomości z FIFO i wywoływania „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;
}

Zapisz go w alpine-notifier.c i skompiluj za pomocą polecenia „gcc alpine-notifier.c -o alpine-notifier”. Uruchom „alpine-notifier” po uruchomieniu alpine. Ciesz się wyskakującymi powiadomieniami.

Linulina
źródło
fajne rozwiązanie :-)
echox
Niesamowite. Napisałem mały skrypt powłoki, aby zrobić zasadniczo to samo.
Steven D
1
@steven: Głosowałbym na to, gdybyś był na tyle uprzejmy, aby się tym podzielić. :-)
Malabarba
Nieważne, skończyłem też na pisaniu jednego.
Malabarba,
4

Aktualizacja :
Nie byłem zadowolony z mojej poprzedniej odpowiedzi, więc znacznie poprawiłem skrypt i zrobiłem dla niego repozytorium github .

Teraz nie musisz uruchamiać skryptu po uruchomieniu alpine, skrypt zajmie się wszystkim za Ciebie. Rdzeń skryptu jest w większości taki sam (poprawiłem tylko trochę parsowanie):

#! /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)

Reszta jest trochę za duża, aby opublikować ją tutaj, więc każdy zainteresowany może po prostu dostać ją w repozytorium .

Malabarba
źródło
1
Bruce, dziękuję za udostępnienie skryptu! Teraz wiem, jak czytać i przetwarzać wiadomości z FIFO, utrzymując je otwarte w powłoce. Nie mogłem tego
rozgryźć
@Linulin Cool. =) Niestety filtry, których użyłem do ustawienia contenti namesą w niektórych przypadkach trochę wadliwe., Co jest trochę głupie, ponieważ są powodem, dla którego w ogóle opublikowałem odpowiedź. = P
Malabarba
Wspaniale jest widzieć tak dobrze używaną powłokę. Dzięki za opublikowanie go na github. Brawo!
pisklęta
1

Nie możesz użyć specjalistycznego narzędzia do powiadamiania pocztą, takiego jak Gnubiff, powiadomienie pocztą lub kbiff?

fschmitt
źródło
Chciałbym użyć powiadomienia e-mail, aby osiągnąć coś podobnego, jednak nie mogę znaleźć żadnej dokumentacji dotyczącej dostosowywania polecenia new-mail powiadomienia.
Jonathan Neufeld
1

Nie można dostosować „powiadomienia o nowej poczcie” alpine.

W dokumentacji konfiguracyjnej nie ma takiej opcji .

Oto też cytat z listy mailingowej Eduardo Chappa:

Zauważyłem, że alpine ostrzega wizualnie w terminalu gnomów, flashując ekran, gdy nadchodzi nowa poczta. Czy istnieje sposób dostosowania alertu, aby na przykład odtwarzał dźwięk lub coś w tym stylu?

[..]

Alpine, jak można się domyślać, wyda tylko dźwięk. W Web Alpine można wysłać plik do odtworzenia (do przeglądarki) w celu powiadomienia o nowej poczcie. Nie ma takiej funkcji w systemach Unix, Mac ani Windows Alpine.

Masz teraz następujące opcje:

Cytując programistę mojego ulubionego klienta poczty:

Wszyscy klienci pocztowi ssają ...

:-)

echox
źródło