アルパインで新着メール通知をカスタマイズするにはどうすればよいですか?


11

私は主なメールリーダーとしてalpineを使用しています。私は一日のほとんどをターミナルまたはEmacsで過ごしていますが、notify-binを使用して新着メールのかなりの通知を受け取るのは素晴らしいことです。新しいメールを受信したときにカスタムコマンドを実行するようにアルパインを構成する方法はありますか?

回答:


7

alpineには "NewMail FIFO Path"設定オプションがあります。ヘルプを引用:

現在のフォルダー、受信トレイ、または開いているStayopenフォルダーで新しいメッセージを受信するたびに1行のメッセージを送信するFIFO特殊ファイル(名前付きパイプとも呼ばれます)をアルパインに作成させることができます。両方が同じFIFOに書き込む2つの異なるアルパインから保護するために、アルパインは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」コマンドでコンパイルします。高山が開始された後、 'alpine-notifier'を開始します。ポップアップ通知をお楽しみください。


素敵な解決策:-)
2010年

驚くばかり。私は本質的に同じことをするために小さなシェルスクリプトを書きました。
Steven D

1
@steven:あなたがそれを共有するのに十分親切であるなら、私はそれに投票します。:-)
マラバルバ

気にしないで、私も1つ書いてしまいました。
Malabarba、2011

4

更新
以前の回答に満足できなかったため、スクリプトを大幅に改善し、githubリポジトリを作成しました。

これで、高山を開始した後にスクリプトを開始する必要はありません。スクリプトがすべてを処理します。スクリプトのコアはほとんど同じです(解析を少しだけ改善しました)。

#! /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からメッセージを読み取って処理する方法がわかりました。自分用の通知機能を設定しているときに、それを理解できませんでした:)
Linulin

@Linulinクール。私が設定するために使用さ=)残念ながらフィルターcontentnameいくつかのケースでは少しバギーです。、彼らは私がすべての答えを掲示した理由ですので、少し愚かです。= P
マラバルバ

シェルがうまく使用されているのを見るのは素晴らしいことです。githubに投稿していただきありがとうございます。ブラボー!

1

Gnubiff、mail-notification、kbiffなどの専用のメール通知ツールを使用できませんか?


mail-notificationを使用して同様のことを実現したいのですが、mail-notification new-mailコマンドをカスタマイズする方法に関するドキュメントが見つかりません。
ジョナサンノイフェルド

1

アルパインの「新着メール通知」はカスタマイズできません。

構成ドキュメントに記載されているそのようなオプションはありません。

また、ここにEduardo Chappaのメーリングリストからの引用があります

アルパインは、新着メールが届くと、画面を点滅させてgnomeターミナルで視覚的な警告を表示することに気づきました。アラートをカスタマイズして、たとえば音などを再生する方法はありますか?

[..]

アルパインは、ご想像のとおり、ビープ音のみを鳴らします。Web Alpineでは、新着メールの通知用に再生するファイルを(ブラウザーに)送信できます。Unix、MacまたはWindows Alpineにはそのような機能はありません。

オプションは次のとおりです。

そして私のお気に入りのメールクライアントの開発者を引用すると:

すべてのメールクライアントは吸う...

:-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.