メールからの投稿
メールから Wordpressに投稿する PHP スクリプトのプロトタイプができた。
まだバグだらけだけど、とりあえず日本語には対応。
(ファイルのアップロードできないし、toを見ていないからどこからのメールでも受け付けちゃうし、二つ以上のファイルがある場合の対応は考えてないし・・・ごにょごにょごにょ)
と云う訳で、使用は自己責任で。
file:'mail.php.gz' (gzip圧縮しています)
次に、postfixの設置方法。
- /etc/postfix/master.cf
- ここにフィルタする為のスクリプトパスを書く。
# # Filter # # ============================================================= # service type private unpriv chroot wakeup maxproc command # (yes) (yes) (yes) (never) (100) # ============================================================= filter unix - n n - 10 pipe flags=Rq user=postfix_filter argv=/path/to/filter.sh -f ${sender} -- ${recipient} flter unix - n n - 10 pipe flags=Rq user=postfix_filter argv=/path/to/filter.sh -f ${sender} -- ${recipient}
- /path/to/filter.sh
- postfixが呼び出すフィルタスクリプト。内容は、下記の様になる。
#!/bin/sh # Simple shell-based filter. It is meant to be invoked as follows: # /path/to/script -f sender recipients... # Localize these. INSPECT_DIR=/home/postfix_filter/filter SENDMAIL="/usr/sbin/sendmail -i" # Exit codes from <sysexits.h> EX_TEMPFAIL=75 EX_UNAVAILABLE=69 # Clean up when done or when aborting. trap "rm -f in.$$" 0 1 2 3 15 # Start processing. cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; } # Specify your content filter here. # filter <in.$$ || { # echo Message content rejected; exit $EX_UNAVAILABLE; } #cp in.$$ /tmp/test.$$ /usr/local/bin/php /path/to/mail.php < in.$$ $SENDMAIL "$@" <in.$$ exit $?
- /path/to/mail.php
- さっきのgzipファイルを展開してやります。そして、上記の/path/to/filter.shに上記の様に実行させる様にします。
フィルタに関する詳しい事は、FILTER_READMEを読んでください。
他のMTAの方法は知りません。どっときゅーめーるって何?