カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

procmail 送信元の取得

この記事は最終更新日から1年以上経過しています。

送信元メールアドレスの取得が不完全だったので、訂正します。
確かな情報を得るため、ヘッダーからではなく、エンベロープから取得するように。
オプションもいらないと思います。

訂正前

#送信元アドレスを変数$FROMに格納
#sedコマンドで表示名、スペース、<>を除去(無効)
:0fwH
* ^From: \/.*
{
    FROM = $MATCH
    #FROM = `echo $FROM | sed s/\".*\"//`
    #FROM = `echo $FROM | sed s/[[:space:]]//g`
    #FROM = `echo $FROM | sed s/\\<//g | sed s/\\>//g`
}

訂正後
※[]の中は^・半角スペース・タブです。

#送信元アドレスを変数$FROMに格納
:0
*$ ! ^From *\/[^     ]+
{
    FROM = `formail -x From:`
}
:0E
{
    FROM = $MATCH
}

Reply-To:・Sender:も取得する場合

#送信元アドレスを変数$FROMに格納
:0
*$ ! ^Reply-To: *\/[^  ].*
*$ ! ^Sender: *\/[^    ].*
*$ ! ^From *\/[^       ]+
{
    FROM = `formail -x From:`
}
:0E
{
    FROM = $MATCH
}

ドメインを取得する場合(@を含む)

:0
*$ ^From *\/[^     ]+
{
    # @以前を除去
    DOMAIN = `echo "$MATCH" | sed s/.*@/@/g`
}
この記事がお役に立ちましたらシェアお願いします
3,818 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です