Como posso personalizar a nova notificação de correio no alpine?

11

Eu uso o alpine como meu principal leitor de email. Embora eu passe a maior parte do meu dia no terminal ou no Emacs, ainda seria bom receber uma notificação de novos emails usando o notify-bin. Existe alguma maneira que eu possa configurar alpine para executar um comando personalizado quando novas mensagens são recebidas?

    
por Steven D 10.09.2010 / 00:47

4 respostas

7

Existe a opção de configuração "NewMail FIFO Path" no alpine. Citando a ajuda:

You may have Alpine create a FIFO special file (also called a named pipe) where it will send a one-line message each time a new message is received in the current folder, the INBOX, or any open Stayopen Folders. To protect against two different Alpines both writing to the same FIFO, Alpine will only create the FIFO and write to it if it doesn't already exist.

Então, eu configurei a opção para '/tmp/alpine.fifo', e escrevi um utilitário simples para ler mensagens do FIFO e invocar '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] = '
#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] = '%pre%';
            sprintf(cmd, "notify-send -t 0 'New mail:' '%s'", s);
            system(cmd);
        }
    } while (num > 0);

    return 0;
}
'; sprintf(cmd, "notify-send -t 0 'New mail:' '%s'", s); system(cmd); } } while (num > 0); return 0; }

Salve-o no alpine-notifier.c e compile com o comando 'gcc alpine-notifier.c -o alpine-notifier'. Inicie o 'alpine-notifier' depois que o alpine for iniciado. Aproveite as notificações pop-up.

    
por 02.10.2010 / 21:03
4

Atualizar :
Eu não estava satisfeito com a minha resposta anterior, então eu melhorei muito o script e fiz um repositório do github para ele .

Agora você não precisa iniciar o script depois de iniciar o alpine, o script cuidará de tudo para você. O núcleo do script é basicamente o mesmo (eu só melhorei um pouco a análise):

#! /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 ].*//''
        subject='echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\(Re: \?\)\?\([^\t]*\)[\t ].*//''
        box='echo "$L"  | sed 's/  \+/\t/g;s/^\([^\t]*\)\t\([^\t]*\)[\t ]\([^\t]*\).*//''
        notify-send -t 10000 $iconcommand "Mail from $name" "$subject\n-\nIn your $box."
    fi
done < <(cat alpine.fifo)

O resto é um pouco grande para postar aqui, então quem estiver interessado pode apenas obtê-lo no repo .

    
por 18.08.2011 / 19:44
1

Você não pode usar uma ferramenta de notificação de email especializada como o Gnubiff, a notificação por email ou o kbiff?

    
por 22.09.2010 / 10:53
1

Não é possível personalizar a "nova notificação de email" do alpine.

Não existe essa opção mencionada na documentação de configuração .

Veja também uma cotação da lista de discussão de Eduardo Chappa :

I've noticed that alpine gives a visual alert in gnome terminal by flashing the screen, when a new mail arrives. Is there any way to customise the alert, so that, for instance, it plays a sound or something?

     

[..]

     

Alpine, como você pode imaginar agora,   só apitará. Na Web Alpine é   possível enviar um arquivo para ser jogado   (para o navegador) para novo email   notificação. Não existe tal   recurso no Unix, Mac ou Windows   Alpino.

Suas opções agora são:

E para citar o desenvolvedor do meu cliente de email favorit:

All mailclients suck...

: -)

    
por 22.09.2010 / 12:03