Pythonのスクリプトを以下のように用意する.
#! /bin/env python import sys import email import re import os re_fname = re.compile('[^\./][^/]*\.[a-zA-Z0-9]*$') # この箇所は適宜修正をすること. dest_dir = '/home/hoge/email/' # 保存先のディレクトリ msg = email.message_from_string(sys.stdin.read()) for part in msg.walk(): fn = part.get_filename() if not part.is_multipart() and fn and re_fname.match(fn): print dir(part) fp = open(os.path.join(dest_dir, fn), 'wb') fp.write(part.get_payload(decode=True)) fp.close()上記のスクリプトを
~/Maildir/attach2file.py
という名前で保存した場合,
.procmailrc
に以下のように記述する.
:0c *^Content-Type: multipart | $HOME/Maildir/attach2file.py
なお, re_fnameの箇所は, ..
など他のディレクトリへファイルを書き込まれないようにするなどセキュリティに配慮して記載する.