-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2009年10月24日

メールヘッダからFromのアドレスを抜き出す。

ソースコード
#!/bin/sh
RES=`cat`

REPLY=`echo "$RES" |grep '^From: ' | cut -d' ' -f2-`
echo "cut => "$REPLY""

REPLY=`echo "$RES" |sed -n -e 's/\(^From: \)\(.\+\)$/\2/p'`
echo "sed => "$REPLY""

REPLY=`echo "$RES" |awk 'BEGIN {i=0;} /^From:/ {i<1; i++; sub(/From: /, ""); if(i == 1){print;}}'`
echo "awk => "$REPLY""

REPLY=`echo "$RES" |grep '^From: '|perl  -p -e  'if(/^From: ([^ ]+?)$/) \
{exit;} s/From: //; '`
echo "perl => "$REPLY""

REPLY=`echo "$RES" |ruby -n -e '(print  $_[ /^From:\s(.+)/,1 ]; exit;) if /^From: /'`
echo "ruby => "$REPLY""

#メールアドレスのみを取り出す。
MAIL=${REPLY##*<}
MAIL=${MAIL%%>}
echo -e "\n\nメールアドレス: $MAIL"



テストファイルの内容
Return-Path: <xxxxxx@gmail.com>
Received: from mail-xxxx.google.com (mail-xxxx.google.com [209.85.222.182])
        by www1729.sakura.ne.jp (8.14.3/8.14.3) with ESMTP id n9O6AjBI094828
        for <xxxxx@hirono-hideki-01.sakura.ne.jp>; Sat, 24 Oct 2009 15:10:45 +0900 (JST)
        (envelope-from xxxxxx@gmail.com)
Received: by pzk12 with SMTP id 12so6950032pzk.13
        for <xxxxx@hirono-hideki-01.sakura.ne.jp>; Fri, 23 Oct 2009 23:10:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=gamma;
        h=domainkey-signature:mime-version:received:in-reply-to:references
         :date:message-id:subject:from:to:content-type;
        bh=inf2k4P4zg6jFfBgBwg9Av/zkFa+dGjyV61RK1Ttvdo=;
        b=nAfF4GH8FZ+SDSWv7YZYCX8rdU4avuKXxljlQVSRPsHF4zSNhvimHPaYR4yp6cnu2H
         XHg1B7M6EYFZcrFhjkLBLDmzYEsPdieA4eMutujUgCbmPM2zmi47fHBKfWpukRoodM/c
         vs78mbbkwpEPROWOL+ib81SmhPqR3bbeMjxkE=
DomainKey-Signature: a=rsa-sha1; c=nofws;
        d=gmail.com; s=gamma;
        h=mime-version:in-reply-to:references:date:message-id:subject:from:to
         :content-type;
        b=oLHJQfupLp/ODg8gnPpPers3YBuLqBK5t+FpO3QPyjEEDV7UuvYOo8KMlPdPLtmo2F
         xmM572+H2un7qmQKndzIgL+5vkwhOpfWDHEFRF7msuvz2TuONI9+s7z7RPCNK8Yx+r8t
         LpAxtPiqaI2pg7ZSMlbQRWDRmWZxdirEBz5hU=
MIME-Version: 1.0
Received: by 10.142.67.6 with SMTP id p6mr889222wfa.20.1256364644802; Fri, 23
        Oct 2009 23:10:44 -0700 (PDT)
In-Reply-To: <200910240609.n9O69m8m0947xxxxx.sakura.ne.jp>
References: <200910240609.n9O69m8m0947xxxxx.sakura.ne.jp>
Date: Sat, 24 Oct 2009 15:10:44 +0900
Message-ID: <f00b56d20910232310r289555f7q9f79c57efe2b7a9e@mail.gmail.com>
Subject: Re: xxxxx
From: =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
To: xxxxx@hirono-hideki-01.sakura.ne.jp
Content-Type: multipart/alternative; boundary=001636e0a8bb5ca1380476a830eb

--001636e0a8bb5ca1380476a830eb
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit

2009BG/10B7n24BF|15:09 <xxxxx@hirono-hideki-01.sakura.ne.jp>:

> B$F$9$H
>
>
B#o#k

--001636e0a8bb5ca1380476a830eb
Content-Type: text/html; charset=ISO-2022-JP
Content-Transfer-Encoding: base64

PGJyPjxicj48ZGl2IGNsYXNzPSJnbWFpbF9xdW90ZSI+MjAwORskQkcvGyhCMTAbJEI3bhsoQjI0
GyRCRnwbKEIxNTowOSAgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86c2swMDAx
QGhpcm9uby1oaWRla2ktMDEuc2FrdXJhLm5lLmpwIj5zazAwMDFAaGlyb25vLWhpZGVraS0wMS5z
YWt1cmEubmUuanA8L2E+Jmd0Ozwvc3Bhbj46PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x
dW90ZSIgc3R5bGU9ImJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiKDIwNCwgMjA0LCAyMDQpOyBt
YXJnaW46IDBwdCAwcHQgMHB0IDAuOGV4OyBwYWRkaW5nLWxlZnQ6IDFleDsiPgobJEIkRiQ5JEgb
KEI8YnI+Cjxicj4KPC9ibG9ja3F1b3RlPjwvZGl2Pjxicj4bJEIjbyNrGyhCPGJyPjxicj4K
--001636e0a8bb5ca1380476a830eb--



処理結果
FU:[tmptmp]% cat mail.test |./cut-maddr.sh
cut => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
sed => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
awk => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
perl => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>
ruby => =?ISO-2022-JP?B?GyRCVyJMbj0oPHkbKEI=?= <xxxxxx@gmail.com>


メールアドレス: xxxxxx@gmail.com
FU:[tmptmp]%   

 該当箇所が一つだけなら処理も簡単なのですが、二つ以上あると次のようにエラーの起こる可能性が出てきます。
FU:[tmptmp]% cat ttt |./cut-maddr.sh
cut => x111@xxxxx.xxx.js 22222222 33333333
sed => x111@xxxxx.xxx.js 22222222 33333333
awk => x111@xxxxx.xxx.js
perl => x111@xxxxx.xxx.js
ruby => x111@xxxxx.xxx.js


メールアドレス: x111@xxxxx.xxx.js
FU:[tmptmp]%    


 もっとよい方法がありそうですが、今後の参考も兼ねたメモ書きです。

Powered by ScribeFire.



posted by hirono at 18:13| Comment(0) | TrackBack(0) | Vim
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/33162465

この記事へのトラックバック