携帯から(と言うかメールからですな)blogを登録するのを、moblogとか言うらしい。
参考にしたサイトには、日付がGMTで記録されてしまうようなことが書いてありましたが、うちでは特に問題ないみたい。
※ おいらの携帯にはカメラがついてないので、画像のテストができないのが寂しいな・・・。
Moblog とは、モバイル環境から Weblog することです。最近はカメラ付き携帯が普及しいつでもどこでも記録ができます。ここのサイトが大変参考になったので、そこに書いてあるとおりにやってみた。
- python 2.2.2以降が必要らしい。うちに入ってたのは2.2だったので、portupgradeで2.3.3にバージョンアップ。
- python用の日本語コーデックが必要らしいので、/usr/ports/japanese/pycodecをインストール。
- ここからmail2entryをダウンロード。これを書いてる時点の最新は20030506。
- アーカイブを好きなところに展開する。気分的に/usr/local/mail2entry。
- MTにmoblog用の新しいユーザを登録する。
- settings.pyを編集する。
- 同じディレクトリに、includeを作る。
- 中のファイルのオーナーをwww:wwwに、permissionを600にする。
- /etc/aliases に include のためのエントリーを追加する。newaliasする。
参考にしたサイトには、日付がGMTで記録されてしまうようなことが書いてありましたが、うちでは特に問題ないみたい。
※ おいらの携帯にはカメラがついてないので、画像のテストができないのが寂しいな・・・。
さて、これでメールからblogが投稿できるようになったわけですが(まあ、絶対書かないだろうけど・・・)、このままだと誰でもメールを出せばうちのblogに書けてしまいます。
と、言うかあらしてくださいと言わんばかりじゃない??
対策としては、
で、一応ソースをいじってみることにしました。
変更したのは、parsemsg.pyです。面倒なので、diffを載せます。
これだけだと、From詐称には役に立ちませんが、ないよりはましかしらん・・・。
しっかし、pythonなんて何年も使ってないから忘れるわ~(汗)
2004/8/4追記
カメラ付き携帯を入手したので、試してみたら以前は出なかったエラーが出ました。
原因が良くわからないのですが、parsemsg.pyにimportを追加することで回避はできました。 と、言うわけで上のdiffを修正してあります。
と、言うかあらしてくださいと言わんばかりじゃない??
対策としては、
- procmailなどをかます。
- ソースをいじる。
で、一応ソースをいじってみることにしました。
変更したのは、parsemsg.pyです。面倒なので、diffを載せます。
*** parsemsg.py.ORIG Fri Mar 12 16:22:19 2004 --- parsemsg.py Wed Aug 4 19:22:29 2004 *************** *** 4,12 **** --- 4,14 ---- from email import * from email.Header import * + from settings import * import types import re + class IllegalUser(Exception): pass class ParseMsgError(Exception): pass class ImageTypeNotAllowed(ParseMsgError): pass class UnexpectedMimeType(ParseMsgError): pass *************** *** 22,27 **** --- 24,30 ---- class messageContent : def __init__ ( this, title ) : this.__title = title + this.__from = u'' this.__description = u'' this.__entry = u'' this.__images = [] *************** *** 36,46 **** --- 39,54 ---- return this.__images def addImage(this,image) : this.__images.append(image) + def setFrom(this,mailfrom) : + this.__from = mailfrom def getEntry(this) : return this.__entry def setEntry(this,entry) : this.__entry = entry def check(this) : + if this.__from != allowmailfrom : + raise IllegalUser + if not this.__description : raise BodyEmpty if type(this.__description) is not types.UnicodeType : *************** *** 59,70 **** --- 67,80 ---- msg = message_from_file(fileObject) subject = msg['Subject'] + mailfrom = msg['From'] results = decode_header(subject) title = " ".join([unicodify(decoded_subject, charset) \ for decoded_subject, charset in results]) content = messageContent(title) + content.setFrom(mailfrom) parseMultiPart(msg,content) return contentこれで、settings.py に
allowmailfrom = "投稿を許すメールのFrom"と言う行を追加すれば、Fromが一致しないメールからの投稿ははじくようになります。
これだけだと、From詐称には役に立ちませんが、ないよりはましかしらん・・・。
しっかし、pythonなんて何年も使ってないから忘れるわ~(汗)
2004/8/4追記
カメラ付き携帯を入手したので、試してみたら以前は出なかったエラーが出ました。
原因が良くわからないのですが、parsemsg.pyにimportを追加することで回避はできました。 と、言うわけで上のdiffを修正してあります。
カテゴリ
MovableTypeトラックバック(2)
このブログ記事を参照しているブログ一覧: moblog?
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/233
» mail2entry(MT 3.x TestSite)~のトラックバック
Moblog とは、モバイル環境から Weblog することです。最近はカメラ付... 続きを読む
» mail2entry(Jay's Room)~のトラックバック
Movable Typeを自宅サーバーに設置してみて、 携帯で更新したいと思って... 続きを読む
はじめまして。Fromの制限を参考にさせて頂きましたが、
Traceback (most recent call last):
File "/usr/local/src/mail2entry20030506/mail2entry.py", line 35, in main
result = postentry.post(content)
File "/usr/local/src/mail2entry20030506/postentry.py", line 14, in post
content.check()
File "/usr/local/src/mail2entry20030506/parsemsg.py", line 48, in check
if this.__from != allowmailfrom :
NameError: global name 'allowmailfrom' is not defined
--------------------------------------------------------
というエラーが発生してしまいました。何か分かりましたら、教えていただけるとありがたいです。
エラーから見ると、settings.py に allowmailfrom = の行がないのではないでしょうか?
スペルなどを確認してみてください~。
カメラ付き携帯を入手したので、moblogに投稿してみたらsatto11さんと同じエラーが出ました。
ちゃんと動くことを確認したつもりだったのですが・・・(汗)
parsemsg.py の最初の方に、以下を追加することで動くようになりました。
from settings import *