携帯から(と言うかメールからですな)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 *