Wie kann ich die Benachrichtigung über neue E-Mails in Alpine anpassen?

11

Ich benutze Alpine als primären Mail-Reader. Während ich den größten Teil meines Tages im Terminal oder bei Emacs verbringe, wäre es immer noch schön, mit notify-bin eine hübsche Benachrichtigung über neue E-Mails zu erhalten. Kann ich alpine so konfigurieren, dass ein benutzerdefinierter Befehl ausgeführt wird, wenn neue E-Mails empfangen werden?

Steven D.
quelle

Antworten:

7

Es gibt die Konfigurationsoption "NewMail FIFO Path" in alpine. Zitieren der Hilfe:

Möglicherweise muss Alpine eine FIFO-Spezialdatei (auch Named Pipe genannt) erstellen, in der jedes Mal eine einzeilige Nachricht gesendet wird, wenn eine neue Nachricht im aktuellen Ordner, in der INBOX oder in geöffneten Stayopen-Ordnern empfangen wird. Zum Schutz vor zwei verschiedenen Alpen, die beide in dasselbe FIFO schreiben, erstellt Alpine das FIFO nur und schreibt darauf, wenn es noch nicht vorhanden ist.

Also habe ich die Option auf '/tmp/alpine.fifo' gesetzt und ein einfaches Dienstprogramm geschrieben, um Nachrichten aus dem FIFO zu lesen und 'notify-send' aufzurufen:

#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;
}

Speichern Sie es in alpine-notifier.c und kompilieren Sie es mit dem Befehl 'gcc alpine-notifier.c -o alpine-notifier'. Starten Sie 'alpine-notifier', nachdem alpine gestartet wurde. Genießen Sie Popup-Benachrichtigungen.

Linulin
quelle
schöne lösung :-)
echox
Genial. Ich habe ein kleines Shell-Skript geschrieben, um im Wesentlichen dasselbe zu tun.
Steven D
1
@steven: Ich würde dafür stimmen, wenn Sie so freundlich wären, es zu teilen. :-)
Malabarba
Egal, am Ende habe ich auch einen geschrieben.
Malabarba
4

Update :
Ich war mit meiner vorherigen Antwort nicht zufrieden, daher habe ich das Skript stark verbessert und ein Github-Repo dafür erstellt.

Jetzt müssen Sie das Skript nicht mehr starten, nachdem Sie alpine gestartet haben. Das Skript erledigt alles für Sie. Der Kern des Skripts ist größtenteils derselbe (ich habe das Parsen nur ein wenig verbessert):

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

Der Rest ist etwas groß, um hier zu posten, so dass jeder, der interessiert ist, ihn einfach beim Repo bekommen kann .

Malabarba
quelle
1
Bruce, danke, dass du das Drehbuch geteilt hast! Jetzt weiß ich, wie man Nachrichten von FIFO liest und verarbeitet, während ich sie in der Shell offen halte. Konnte es nicht herausfinden, als ich einen Notifier für mich selbst
einrichtete
@ Linulin Cool. =) Leider verwendet die Filter I für Einstellung contentund namesind ein wenig Buggy in einigen Fällen., Die ein wenig albern ist , da sie sind der Grund , warum ich die Antwort überhaupt geschrieben. = P
Malabarba
Es ist großartig zu sehen, wie die Shell so gut genutzt wird. Danke, dass du es auf github gepostet hast. Bravo!
Küken
1

Können Sie kein spezielles Mail-Benachrichtigungstool wie Gnubiff, Mail-Benachrichtigung oder kbiff verwenden?

fschmitt
quelle
Ich möchte die E-Mail-Benachrichtigung verwenden, um etwas Ähnliches zu erreichen. Ich kann jedoch keine Dokumentation zum Anpassen des Befehls E-Mail-Benachrichtigung für neue E-Mails finden.
Jonathan Neufeld
1

Es ist nicht möglich, die "Benachrichtigung über neue E-Mails" von alpine anzupassen.

In der Konfigurationsdokumentation wird keine solche Option erwähnt .

Auch hier ist ein Zitat aus der Mailingliste von Eduardo Chappa:

Ich habe festgestellt, dass Alpine im Gnome-Terminal eine visuelle Warnung ausgibt, indem es den Bildschirm blinkt, wenn eine neue Mail eintrifft. Gibt es eine Möglichkeit, die Warnung so anzupassen, dass sie beispielsweise einen Ton oder etwas anderes wiedergibt?

[..]

Wie Sie jetzt erraten können, piept Alpine nur. In Web Alpine ist es möglich, eine abzuspielende Datei (an den Browser) zur Benachrichtigung über neue E-Mails zu senden. In Unix, Mac oder Windows Alpine gibt es keine solche Funktion.

Ihre Optionen sind jetzt:

Und um den Entwickler meines bevorzugten Mail-Clients zu zitieren:

Alle Mailclients saugen ...

:-)

Echox
quelle