Come posso personalizzare la notifica via e-mail in alpine?


11

Uso alpine come mio principale lettore di posta. Mentre trascorro la maggior parte della mia giornata nel terminal o in Emacs, sarebbe comunque bello ricevere una bella notifica della nuova posta utilizzando il cestino di notifica. Esiste un modo per configurare alpine per eseguire un comando personalizzato alla ricezione di nuova posta?

Risposte:


7

Esiste l'opzione di configurazione "NewMail FIFO Path" in alpine. Citando l'aiuto:

È possibile che Alpine crei un file speciale FIFO (chiamato anche pipe denominato) in cui invierà un messaggio di una riga ogni volta che viene ricevuto un nuovo messaggio nella cartella corrente, INBOX o qualsiasi cartella Stayopen aperta. Per proteggere da due diversi alpini che scrivono entrambi allo stesso FIFO, Alpine creerà il FIFO e vi scriverà solo se non esiste già.

Quindi, ho impostato l'opzione su '/tmp/alpine.fifo' e ho scritto una semplice utility per leggere i messaggi dalla FIFO e invocare 'notification-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;
}

Salvalo in alpine-notifier.c e compila con il comando 'gcc alpine-notifier.c -o alpine-notifier'. Avvia "alpine-notifier" dopo l'avvio di alpine. Goditi le notifiche pop-up.


bella soluzione :-)
echox

Eccezionale. Ho scritto un piccolo script di shell per fare essenzialmente la stessa cosa.
Steven D

1
@steven: voterei se fossi abbastanza gentile da condividerlo. :-)
Malabarba,

Non importa, ho finito anche per scriverne uno.
Malabarba,

4

Aggiornamento :
non ero soddisfatto della mia risposta precedente, quindi ho migliorato molto la sceneggiatura e ho creato un repository github per questo.

Ora non è necessario avviare la sceneggiatura dopo aver avviato alpine, la sceneggiatura si occuperà di tutto per te. Il nucleo dello script è per lo più lo stesso (ho solo migliorato un po 'l'analisi):

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

Il resto è un po 'grande da pubblicare qui, quindi chiunque sia interessato può semplicemente ottenerlo nel repository .


1
Bruce, grazie per aver condiviso la sceneggiatura! Ora so come leggere ed elaborare i messaggi da FIFO mantenendolo aperto nella shell. Non sono riuscito a capirlo durante l'impostazione di un notificatore per me :)
Linulin,

@Linulin Cool. =) Sfortunatamente i filtri che ho usato per l'impostazione contente namein alcuni casi sono un po 'buggy., Il che è un po' sciocco poiché sono il motivo per cui ho pubblicato la risposta. = P
Malabarba,

È fantastico vedere la shell usata così bene. Grazie per averlo pubblicato su github. Bravo!
pulcini,

1

Non puoi utilizzare uno strumento specializzato di notifica della posta come Gnubiff, notifica della posta o kbiff?


Vorrei utilizzare la notifica e-mail per ottenere qualcosa di simile, tuttavia non riesco a trovare alcuna documentazione su come personalizzare il comando new-mail di notifica e-mail.
Jonathan Neufeld,

1

Non è possibile personalizzare la "notifica di nuova posta" di alpine.

Non esiste tale opzione menzionata nella documentazione di configurazione .

Anche qui c'è una citazione dalla mailing list di Eduardo Chappa:

Ho notato che alpine dà un avviso visivo nel terminale di gnome facendo lampeggiare lo schermo, quando arriva una nuova posta. Esiste un modo per personalizzare l'avviso, in modo che, ad esempio, suoni o qualcosa del genere?

[..]

Alpine, come puoi immaginare ora, emetterà solo un segnale acustico. In Web Alpine è possibile inviare un file da riprodurre (al browser) per la notifica di nuova posta. Tale funzionalità non è disponibile in Unix, Mac o Windows Alpine.

Le tue opzioni sono ora:

E per citare lo sviluppatore del mio client di posta preferito:

Tutti i client di posta succhiano ...

:-)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.