Wed, 15 Jun 2005

moblog

やっとちゃんといけるようになりました。

とはいってもやってることは非常に簡単で、

  1. Subjectにてpyblosxomのカテゴリを指定したメールを送信する
  2. maildropの.mailfilterファイルにて、条件によるフィルタリング
  • mailfilterの設定に関しては、 JCUG-man-ja - maildropfilter(7) 参照
  • 英語なので斜め読みしていたら、なかなかスクリプトを実行する方法が見つけられなかったが、下記のようにback-tickで囲ってやるとシェルコマンドを実行してやることができます。これを見つけるのが非常に時間掛かりました。
  • `shell command`
  1. 条件を満たす場合には、下記スクリプトを呼び出す
#!/usr/bin/env python
"script for moblog"

import sys
import re
import time
import os

data_dir = '/your/own/path'

category,contents='',''

mail = sys.stdin.read()

ret = re.search('^Subject: (.*)\n',mail,re.M)
if ret:
       category = ret.group(1)

pos = mail.find('\n\n')
if pos != -1:
       contents = mail[pos+2:]

# pyfilenamemtime.pyプラグインを使用しているため、
# ファイル名は受信した日時とする
fn = time.strftime('%Y-%m-%d-%H-%M')
filename = data_dir+os.sep+(category and category+os.sep)+fn+'.txt'
f = file(filename,'w')
f.write(contents)
f.close()

ただし、これだとiso-2022-jpを自分のサイトのUTF-8に変換できていないので文字化けしてしまいます。本サーバに使用されているpython2.3にはどうやらJapaneseCodecは対応していないようで、そのせいなのか自分のやり方が悪いのかわかりませんが、ちょっと文字コードを処理しきれませんでした。

そんな時、 setmitsさん にアドバイス頂き、本スクリプトへの標準入力をあらかじめ、 nkf -w にてUTF-8に変換することで対応しました。ありがとうございます。

ということで、結局.mailfilterの中身は、

if ( .......... )
{
`/usr/local/bin/nkf -w | /your/script/path/mail_analyzer.py`
}

こんな感じ。

でも、このモブログのセキュリティっていうのは、受信するメールのフィルタリングルールと、モブログ用メールアドレスだけだよな。ちょっと心もとないような気がするものの通常のサーバへのログインだってアカウントとパスワードだと思えば同じようなセキュリティ強度のような気もしてた。少なくともモブログ用メールアドレスを推測されにくいものにするのは最低限必要かな。

ということで、ランダムアカウント作成用のスクリプトも作ってみた。

#!/usr/bin/env python

import random

random.seed(xxx)

la = ['-','.']
lb = [chr(x) for x in xrange(48,57)]  # 0-9
lc = [chr(x) for x in xrange(65,90)] # A-Z
ld = [chr(x) for x in xrange(97,122)] # a-z
l = la + lb + lc + ld
count = random.randint(XXX,YYY) # account lower limit/upper limit
account_name=''
for i in xrange(count):
       ret = random.choice(l)
       account_name = account_name +ret

print count,': ',account_name

random.seed()に与える値と、random.randint()に与えるアカウント名の文字数の下限と上限は指定してください。


Trackback

Comments


shunuhsさんがpyblosxomのセットアップをして、sh1.2 pyblosxomというブログをやっている。調べたわけじゃないのでよく知らないのですが、blosxom(ブロッサムと読むんだっけか、つづりがややこい)をPythonで書いたものなのかな。blosxomは一度だけインストールしてみたことがあるのですが、Perlで書かれたブログツールです。blosxomの特徴のひとつはサーバのファイルシステムをそのまま利用し、公開用のディレクトリにがしがしとファイルを置いていくことでエントリの管...

Posted by Trackback from blogSetomits at Wed Jun 15 23:54:38 2005



maildrop設定の参考にさせて頂きました。

http://www.ginganet.org/ginga/memo/200309bogofilter.txt

Posted by shunuhs at Fri Nov 4 00:42:53 2005



#消えちゃったので再投稿。

サーバ移行後、moblogがうまく動いてなくて困ってたのですが、
どうやら.mailfilterのパーミッションを600にしないと動かないようです。

http://www.ginganet.org/ginga/memo/200309bogofilter.txt
http://www.is.titech.ac.jp/~yanagis0/text/maildrop.html

> .mailfilterのパーミッションはchmod 600 (あるいは、chmod go-rwx) しておかないとmaildropが異常終了するので注意すること。

Posted by shunuhs at Sat Feb 9 03:42:34 2008




Name:


E-mail: (option)


URL: (option)


The Magic Word: please enter the '0730'.


Comment: