如何在Alpine中自定义新邮件通知?


11

我使用alpine作为我的主要邮件阅读器。虽然我大部分时间都在终端或Emacs中度过,但是使用notify-bin接收新邮件的通知仍然很不错。有什么方法可以将Alpine配置为在收到新邮件时运行自定义命令?

Answers:


7

在alpine中有“ NewMail FIFO Path”配置选项。引用帮助:

您可能已经让Alpine创建FIFO特殊文件(也称为命名管道),每次在当前文件夹,INBOX或任何打开的Stayopen文件夹中收到新消息时,该文件都会发送一条单行消息。为了防止两个不同的Alpine都写入相同的FIFO,Alpine将仅创建FIFO并对其进行写入(如果该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”命令进行编译。启动高山后,启动“高山通知者”。享受弹出式通知。


不错的解决方案:-)
echox

太棒了 我写了一个小的Shell脚本来做基本上相同的事情。
史蒂文D

1
@steven:如果您愿意分享它,我会投赞成票。:-)
马拉巴(Malabarba)

没关系,我最终也写了一个。
马拉巴巴

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)

其余的内容都可以在这里发布,因此任何有兴趣的人都可以在仓库中获取


1
布鲁斯,感谢您分享脚本!现在,我知道如何在保持它在外壳中打开的同时从FIFO中读取和处理消息。在为自己设置通知程序时
无法解决

@林琳酷。=)不幸的是,我的过滤器用于设置contentname在某些情况下,小马车,这是一个有点傻,因为他们是我张贴的答案在所有的原因。= P
马拉巴巴

看到外壳使用得很好真是太棒了。感谢您将其发布在github上。太棒了!
小鸡

1

您不能使用Gnubiff,邮件通知或kbiff之类的专用邮件通知工具吗?


我想使用邮件通知来实现类似的功能,但是找不到关于如何自定义邮件通知new-mail命令的任何文档。
乔纳森·诺伊菲尔德

1

无法自定义alpine的“新邮件通知”。

配置文档中没有提及此类选项。

而且,这里是一个报价从爱德华Chappa邮件列表:

我注意到当收到一封新邮件时,alpine会通过闪烁屏幕在gnome终端中发出视觉警报。有什么方法可以自定义警报,例如,它发出声音或其他声音?

[..]

您现在可以猜到,高山只会发出哔哔声。在Web Alpine中,可以发送要播放的文件(到浏览器)以接收新邮件通知。在Unix,Mac或Windows Alpine中没有此类功能。

您现在可以选择:

并引用我最喜欢的邮件客户端的开发人员:

所有的邮件客户端都糟透了...

:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.