Home > Computer > Movable Type > mail2entry

mail2entry

Movable Typeを自宅サーバーに設置してみて、
携帯で更新したいと思って検索したらこんなのが見つかった。

mail2entry

携帯からメールで送信したら、エントリーが追加されるそうだ。
便利そうなので、インストールしてみることにする。


まずはドキュメントを読んで、インストール。

mail2entryからアーカイブをダウンロード
・アーカイブを解凍
 /var/www/html/MT/plugins/mail2entry へ
・MTにmoblog用の別ユーザーを追加
・中のファイルのオーナーをapache.apache,permissionを600に変更
ここからいただいたテストデータで、コマンドラインからテスト
 # cat < メールファイル> | python mail2entry.py
 # 例:cat message | python mail2entry.py .
・qmail用のパッチをインストール
diff -u mail2entry.py.orig mail2entry.py
--- mail2entry.py.orig Mon May 19 21:22:56 2003
+++ mail2entry.py Mon May 19 21:25:14 2003
@@ -9,6 +9,7 @@
""""""
# finding and loading things from settings.py
if len(sys.argv) > 0:
+ os.umask(022)
settings_path = sys.argv[1]
settings_abspath = os.path.abspath(settings_path)
if os.access(settings_abspath, os.F_OK):
・更新メールの宛先のアドレスに .qmailファイルを以下の内容で作成
 
| /path/to/mail2entry.py /path/to/settings.py

・携帯からメールを送信してテスト
 ここではまってしまいました。
 メールを送信しても更新されず、/tmp/log-tracebacks.log に追記されず。
 /var/log/qmail/send/currentを見ると、以下のようなログが。

 deferral: /bin/sh:_/var/www/html/MT/plugins/mail2entry/mail2entry.py:_Permission_denied/
 mail2entry.pyのパーミッションを755にしたら、
 deferral: /usr/bin/env:_python2.2:_No_such_file_or_directory/
 ログは変わるもののやはり動作せず。
 結局のところ .qmailファイルの記述を変えて動くようになりました。
 
| /usr/bin/python /var/www/html/MT/plugins/mail2entry/mail2entry.py /var/www/html/MT/plugins/mail2entry/
他のサイトだとpythonを呼び出していないのですが、なぜ自分の環境では動作しなかったのか分かりません。
とりあえずこれで動作確認が出来ました。

そこで気になったのは、アドレスさえ分かれば誰でもエントリーが追加出来ることです。
調べてみるとメールのFrom:が一致する場合のみ更新するパッチが公開されていました。
PC 日記
moblog?

*** 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"

これでmoblog環境が出来ました。
携帯のカメラは今まであんまり使ってなかったけど、これで使うようになるかな?

Comments:0

コメントする

Trackbacks:0

  • TrackBack URL for this entry
  • https://soph.jp/MT/mt-tb.cgi/5
  • Listed below are links to weblogs that reference
  • mail2entry from Jay's Room

Home > Computer > Movable Type > mail2entry

Search

Feeds

Return to page top