私は別のUTF-8の問題を抱えています。 munpack -C $extrdir $file
を使用して、fetchmail
で受信したEメールからJPGファイルを自動的に抽出します。その後、find -iname "*.jpg*" -o -iname "*.jpeg*" -o -iname "*.JPEG*" -o -iname "*.JPG*"
で取得できる画像を処理するために、bash
とimagemagick
を使用します。スペースや特殊文字がファイル名に追加されていない限り、これはほとんどの画像では問題ありません。
電子メールでソースコードでファイル名はASに書き込まれます
Content-Disposition: attachment; filename="=?UTF-8?B?V2FuZGVydW5nIFNwaWVsd2VnIDIuSlBH?="
。 munpack
ファイルを名前を付けて保存する
=XUTF-8XBXV2FuZGVydW5nIFNwaWVsd2VnIDIuSlBHX=
"*XUTF*"
をfind
に追加できましたが、TXTファイルなどの他のタイプの添付ファイルもimagemagick
だけ処理される可能性があります。 munpack
も "?"に置き換えますそのファイル名を復号することができないのは「X」である。
あなたはこの問題のための解決策を持っていますか?
前もって感謝します!
この回避策は私のためにそれをしました。残念ながら、ファイル名は失われます。しかし、それは私が後にいたことではありませんでした。
munpack
を使用して、ファイル内の出力をパイプします。
munpack -C $extrdir $file > attachments
_
attachements
ファイルの内容は、抽出されたものが見られました。
=XUTF-8XBXV2FuZGVydW5nTGFpdHNjaGVuYmFjaDExLkpQRw==X= (image/jpeg)
=XUTF-8XBXV2FuZGVydW5nTGFpdHNjaGVuYmFjaDE3LkpQRw==X= (image/jpeg)
...
_
それぞれの行をループして、それがイメージであるかどうかを確認し、それらの名前を変更します。
while read p; do
if [[ $p == *"image"* ]]
then
FLNM=attach_${num}.jpg
IFS=' (' read -a array <<< "$p"
mv "${array[0]}" "$FLNM"
fi
num=$((num + 1))
done <attachements
_
ディレクトリ内の出力は次のようになります。
attach_1.jpg
attach_2.jpg
attach_3.jpg
_