穴水版mail2entry公開。為 被災時にはMoblogで。

※最新版が公開されていますので、このページからのダウンロードは出来なくなりました。こちらへ

Moblogスクリプトである穴水版mail2entry.cgi(Ver.0.1。あひるさん作Ver0.5.0改造品)を公開します。実験用コードですので、使用は自己責任でお願いします。なにが起きても責任は持てません。
以下の2つのファイルをダウンロードして、末尾のtxtをcgiに変えてご利用ください。基本的な設置の仕方はあひるさんのコードと同じですので、WEB-YATAIさんを見てください。スクリプト内での設定項目は、スクリプト内で説明してあります。Settingの節以外にはblog-idの設定が必要です。rebuild_index.cgiにもblog-idの設定が必要です。アクセス権は普通は700でいいはずです。
Download mail2entry.cgi
Download rebuild_index.cgi

使用法は、ブラウザからmail2entry.cgiを開くだけです。エントリーとリビルドに成功すれば本文などが表示されます。
いちいち開くのが面倒な場合は、cronに登録するか、こんなコードを書くといいでしょう。mail2entryの冒頭に書かれているのをいじったものです。
Download index.cgi
前回更新時から5分たっていると、メールサーバーに問い合わせをしてメールがあればエントリーとリビルドをしてからトップページを表示します。ただし、トップページを開くのがちょっと遅くなります。
blogのindex.htmlと同じディレクトリに置きます。普通のサーバーならindex.htmlよりもこのスクリプトの実行を優先するはずです。アクセス権は700で。

スクリプト内の注意事項などにも目を通してください。author詐称も可能なスクリプトですので、複数人で使用するにはさらなる改造が必要です。私の場合は、スクリプト内にもあるとおり被災時の使用が前提のため、詐称できるくらい緩い設定でないと困るのでこうなってます。

コード自体もこのエントリーもごちゃごちゃしてしまいました。美しくなくてすいません。
もしさらに便利に改造したら、ぜひ教えてください!

コメント

  1. 公開おめでとうです。
    と、ソースみたのですが、新たに作成したEntryの一個前のEntryはリビルドしていますか?それしないと、一個前のEntryのナビゲート用のリンクに、新しいEntryへのリンクが作成されないと思います。

    返信削除
  2. あーーーーーー!
    これってなんだろうと思ってコメントアウトしてたのを、消してしまってました。そいうことだったんですね。ようやく理解できました。
    ありがとうございます。

    返信削除
  3. はじめまして。
    こちらのスクリプト、使わせていただきました!
    ありがとうございます。
    ただ、cgi-bin配下にイメージを配置するらしく、意図したところにファイルが置かれなかったため、
    > my $imgpath = "/" . $image_dir; # URL
    とか適当に書き換えてみたら、ちゃんと置いてくれるようになりました。あと数行書き換えたかな?
    欲を言うなら、メールがないときにInternal Server Errorを吐かずに、「メールないよーん」とか出して終了するようになると
    エラーログがたまらなくってうれしかったりします。
    もっとPerlの勉強をして、がんばってみます。
    とにかく、ありがとうございました。これからもサイトの更新ほか、がんばってください。

    返信削除
  4. はじめまして&ありがとうございます~
    イメージの配置ですけど、気づきませんでした。私のところではcgi-bin以外のところにちゃんと配置されるんですよ。でもコードをみるとcgiのパスを拾ってるみたいですから、cgi-bin配下に置かれちゃうそうですね。なんでうちではうまく動いてるんだろう・・・
    時間を見つけて調べてみます。エラーのところも気になっていたところなので、いずれなんとか、かんとか。でもPerlよく分からないので(汗)
    でもせっかく使ってくださる方があらわれたので、がんばります!やる気出てきたー!ご報告ありがとうございますです。
    あ、実は、板屋さんのサイト、時々のぞいてます。マーブルかわいいですねぇ。うちの猫に似てます。かわいさで負けてます。でも寝姿なら負けませんよぉ!(笑)

    返信削除
  5. $image_dirについてですが、相対パス指定でしたね。
    私の場合は~/public_html/cgi-bin/hoge/hoge/にmt.cgiがあるので、../../../hoge/hoge/moblog/としています。mt.cgi以下のディレクトリに画像データを置く場合は相対パスの方が便利だからこうなってるのかな?
    でも全然違うところに置く場合は絶対パスの方が便利ですよねぇ。
    ・・・相対パスで指定しててもうまくいかなかったですか?そうなると、絶対パス指定にしてしまった方が安全かな。むむむ。
    Internal server errorにならなくするには、use MT::Placement; のすぐ後に
    print "Content-type: text/html; charset=$to_jcode?n?n";
    とし、最後の方のunless ($flagmessage) {の下の同文を消せばいいと思います。こうするとエラーが全部ブラウザに表示されるはず、なので、デバッグもし易いかもしれません。
    ・・・internal server errorって出てなければエラーログも吐かれないんですよね?この辺、かなり初心者です・・・

    返信削除
  6. はじめまして。スクリプトmail2entry.cgi Ver.0.2.0を自宅サーバーで利用させていただいております。
    変更したのはarchiveやimageへのパスをスタティックに変えたことと、レイアウトを画像が左側になるようにしたことです。
    (たぶん1メールで複数の画像は利用しないと思うので)
    今後の展開に期待しております。

    返信削除
  7. Guriguriさん、はじめまして。使っていただけてうれしいです。
    板屋かえでさんのところでも相対パスじゃダメだったみたいですし、でも私の実験環境(2種類のレンタルサーバ)では相対パスでできてますし、サーバによってさまざまみたいですね。
    絶対パスで指定するようにしてしまった方が分かりやすいのでしょうか?悩みどころです。
    お気づきかとは思いますが、0.2.1も公開してます。フォルダの生成部分にバグがありますので、できるだけこちらをご利用ください。単純ミスなのでソース見比べて書き換えるだけでもOKです。

    返信削除

コメントを投稿

zenback

このブログの人気の投稿

IPv6(IPoE)でようやくVPN復活

DuraSpeedとかHuaweiの電源管理とか、やめてくれ

AirPods Pro、Apple Watchのトランシーバーアプリで楽しめる