私はメインのメールリーダーとしてAlpineを使用しています。私は一日のほとんどをターミナルやEmacsで過ごしていますが、notify-binを使用して新着メールのかなりの通知を受け取るのはいいことです。新しいメールを受信したときにカスタムコマンドを実行するようにAlpineを構成する方法はありますか?
Alpineには「NewMail FIFO Path」構成オプションがあります。ヘルプの引用:
AlpineにFIFO特殊ファイル(名前付きパイプとも呼ばれます)を作成させて、現在のフォルダー、INBOX、またはで新しいメッセージを受信するたびに1行のメッセージを送信することができます。開いているStayopenフォルダ。2つの異なるAlpineが両方とも同じFIFOに書き込むのを防ぐために、Alpineは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 -oAlpine-notifier」コマンドでコンパイルします。アルパインが開始された後、「アルパイン通知」を開始します。ポップアップ通知をお楽しみください。
更新:
以前の回答に満足できなかったので、スクリプトを大幅に改善して、 github repo を作成しました。
これで、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)
残りの部分はここに投稿するのが少し大きいので、興味のある人は誰でも repo で入手できます。
Gnubiff、mail-notification、kbiffなどの専用のメール通知ツールを使用できませんか?
アルパインの「新着メール通知」をカスタマイズすることはできません。
構成ドキュメント に記載されているそのようなオプションはありません。
また、ここにEduardo Chappaのメーリングリストからの quote があります:
Alpineは、新着メールが到着すると、画面を点滅させることでgnomeターミナルで視覚的なアラートを出すことに気づきました。アラートをカスタマイズして、たとえば音などを再生する方法はありますか?
[..]
あなたが今推測できるように、アルパインはビープ音だけを鳴らします。 Web Alpineでは、新しいメール通知のために再生するファイルを(ブラウザーに)送信することができます。 Unix、Mac、WindowsAlpineにはそのような機能はありません。
あなたのオプションは今です:
そして、私のお気に入りのメールクライアントの開発者を引用すると:
すべてのメールクライアントは吸う...
:-)