moblog奮闘記1
手順の確認
moblogに必要なファイルを入手する
moblogをするための準備をします。まずは柴田さんの書いたスクリプトを拝借してきます(moblog.pyおよびadd_moblog_entry.py)。これらは以下のようなファイルです。
- moblog.py
- メールサーバにアクセスして画像やら何やらをごにょごにょします。COREBlog2が稼働しているサーバのホームディレクトリなどに置いて、cronなどで定期的に実行するファイルです。
- add_moblog_entry.py
- 実際にCOREBlog2にエントリを投稿する本体です。ZMIから「Ploneインスタンス/portal_skins/custom」へScript(Python) としてアップロードします。アップロードする際には「.py」をつけてはいけません。
moblog.pyを編集する
素のmoblog.pyはメールサーバがAPOP認証を行うことを前提に書かれています。少し編集することでAPOPに対応していないサーバでも使うことができます。
編集する必要があるのは2カ所あります。
まずは100行目付近の以下の部分です。
95 #
96 # Please set some information,(host of mail server,etc) to use
97 #
98
99 import poplib
100 s = poplib.POP3('host.of.mail.server')
101 s.apop('yourmailaccount','mailpassword')
APOPに対応しているメールサーバを利用する場合は100行目、101行目をそのまま編集すればよいでしょう。例えば以下のようにします。
100 s = poplib.POP3('mail.example.com')
101 s.apop('nyusuke','hogehoge')
APOPに対応していないメールサーバを利用する場合は101行目をコメントアウトし、その後に以下のような変更を加えます。
100 s = poplib.POP3('host.of.mail.server')
101 # s.apop('yourmailaccount','mailpassword') ←ここはコメントアウト
102 s.user('nyusuke') ←アカウント名
103 s.pass_('hogehoge') ←パスワード
もう一カ所編集する部分があります。106行目付近にある以下の部分です。
106 msgbody = '\n'.join(m[1])
107 add_moblog_entry(msgbody,
108 'http://[user]:[pass]@url.of.blog/path2/blog/','password4mail')
上記の108行目を編集します。内容は以下のようになります。
- [user]
- Ploneのユーザ名
- [pass]
- Ploneのパスワード
- url.of.blog/path2/blog/
- COREBlog2までのパス
- password4mail
- moblog用の秘密の暗号(何でもよい)
例えば以下のようになります。
108 'http://nyusuke:fugafuga@nagosui.org/Nagosui/COREBlog2/','entrymoblog')
半角の括弧、すなわち”[”や”]”は必要ありません。
また、
COREBlog2までのパスの最後にはスラッシュ”/”が必要です。
編集が終了したらこのスクリプトをホームディレクトリなどに置いておきましょう。
$ mv ./moblog.py /home/nyusuke/moblog.py
add_moblog_entry.pyをPloneにアップロードする
add_moblog_entry.pyは特に編集する必要はありません。ZMIから「/Ploneインスタンス/portal_skins/custom」へ行き、画面右上のプルダウンメニューから「Script(Python)」を選び、idを「add_moblog_entry」として追加します(下図参照)。
拡張子の部分、すなわち「.py」を付けないように注意してください。
COREBlog2の準備
準備というほどのものではありませんが、
- moblogというidのカテゴリ
- imagesというidのフォルダ
が必要です。
携帯からエントリする
上記の設定が終わったら実際に携帯から投稿してみます。宛先、件名、添付ファイルなどは問題ないと思いますが、本文には注意が必要です。本文は以下のように入力してください。
- 本文1行目:moblog.pyの108行目で設定した秘密の暗号。これがmoblog.pyのものと一致しないとエントリが投稿されません。
- 本文2行目:投稿されるエントリの、カテゴリのidを指定します。空の場合はmoblogカテゴリになります。
- 本文3行目以降:エントリの本文になります。
ですので、例えば以下のようになります。
entrymoblog
実家の猫、「道」ちゃんです。
このような内容のメールを携帯から送った後、ホームディレクトリに置いたmoblog.pyを実行すればCOREBlog2にエントリが投稿されるはずです。
参考エントリ
以下のエントリが参考になります。
以前はsakaさんがmoblogについての有用なドキュメントを残していてくれたのですが、自サーバを停止し、移転後は何故かrestがうまくいってないらしく、現在ドキュメントへのリンクは切れています。
運用例:Yahooメールアカウントを利用してmoblogする
Yahooアカウントの取得とmoblogするためのメールの設定
ウチのメールサーバではimapを使っていますので、このままではmoblogできません。かといってPOPサーバを導入するのもめんどくさいし、moblogだけのためにそこまでやるのもなぁ、ということでYahooメールを使ってmoblogしてみます。
Yahooへ行ってアカウントをとったあと、Yahooメール使い方ガイドを見ながらPOPとして利用するための設定を行います。ステップ8のアカウントのまとめはmoblog設定に便利ですのでプリントアウトして手元に置いておくと良いでしょう。
以下のようになるはずです(アカウントなどは仮のものです)。
- 受信メール(POP3サーバー):pop.mail.yahoo.co.jp
- 受信メール(SMTP)サーバー:smtp.mail.yahoo.co.jp
- アカウント名/ログイン名:nyusuke_moblog
- メールアドレス:nyusuke_moblog@yahoo.co.jp
- パスワード:nyusukemoblog
moblog.pyの編集
アカウントの準備が整ったので、上述のmoblog用のスクリプトをダウンロードし、moblog.pyを編集します。
Yahooメールアカウント以外で編集に必要な項目を以下のように仮定します。
- Ploneのアカウント:nyusuke
- Ploneのパスワード:nyusukeplone
- COREBlog2のパス:http://nagosui.org/Nagosui/COREBlog2/
- moblog用の秘密の暗号:entrymoblog
ということでmoblog.pyは以下のようになります。
100 import poplib
101 s = poplib.POP3('pop.mail.yahoo.co.jp') ← YahooのPOPサーバ
102 # s.apop('yourmailaccount','mailpassword') ← APOPは使わないのでコメントアウト
103 s.user('nyusuke_moblog') ← Yahooのアカウント名
104 s.pass_('nyusukemoblog') ← Yahooのパスワード
105 l = s.list()
106 if len(l) and l[1]:
107 m = s.retr(1)
108
109 msgbody = '\n'.join(m[1])
110 add_moblog_entry(msgbody,
111 'http://nyusuke:nyusukeplone@nagosui.org/Nagosui/COREBlog2/','entrymoblog') ← COREBlog2のパスと秘密の暗号
スクリプトの設置
moblog.pyはホームディレクトリに置いておくことにします。
$ mv ./moblog.py /home/nyusuke/moblog.py
add_moblog_entry.pyは上述したようにPloneのcustomにアップロードします。
またCOREBlog2にmoblogカテゴリとimagesフォルダを作成しました。
imagesフォルダはおそらく存在していると思いますが、何故かimagesフォルダがない、という場合にはこちらを参考にしてください。
cronへの登録
定期的にmoblog.pyを実行する(Yahooメールに新着のmoblogメールが無いかどうか確認する)ためにcronへ登録します。
まずはmoblog.pyを実行可能にしておきます。
$ chmod 755 /home/nyusuke/moblog.py
cronへ登録します。ここでは10分ごとにメールをチェックするように設定しましょう。
$ crontab -e
0-59/10 * * * * /home/nyusuke/moblog.py
携帯から投稿する
- 宛先:nyusuke_moblog@yahoo.co.jp
- 件名:テストぷり
- 添付:06-09-18_17-16.jpg
- 本文1行目:entrymoblog
- 本文2行目:
- 本文3行目:テストですお
としてメールを送信すると、このエントリのようになります。
- The URL to Trackback this entry is:
- http://nagosui.org/Nagosui/COREBlog2/fight-for-moblog-1/tbping
Re:moblog奮闘記1
ごぶさたしてます。
objectis.netは、自分の設定のせいなのか何だかよくわからない状況です(笑)moblog.pyは複数画像の添付とか画像無しをOKに改造したような思い出が…他にホスティングがないかなあ。
Re:moblog奮闘記1
freezope.orgはどうなのかなぁ、って今確認してみたら
なんかProxyErrorでregisterできなかったです…