「実用すくりぷとん」を使う

実用すくりぷとん について

大久保正彦さんが作成された携帯電話メール用スクリプト 実用すくりぷとん を私が構築したインターネットサーバーに設置しました。 このサーバーへの私宛メールは、実用すくりぷとん を通過して私の携帯電話にも届きます。

このスクリプトは携帯電話のsky系Eメールに対応したものです。 sky系Eメールは受信文字が最大384バイトという制限がありますが、このスクリプトを使うことにより受信メールを384バイトごとに区切り分割して携帯電話に送ってくれます。 よって、sky系Eメールの最大の特長である「skyシステムからメールを携帯電話に送ってくれるのでリアルタイムにメールが受信できる。そして携帯電話に何通受けようが月契約料以外に費用がかからない。」が活きます。 あと、このスクリプトではエラーメールの吸収とかweb参照機能とかいろいろできるようです。

sky.dat を編集します

携帯電話で SPAM またはニュースメールを受けなくすむように設定します。 ファイルを編集するにはEUCコードが扱えるエディタ JNote が非常に役立ちます。 普段Windows環境でインターネットアクセスする人には必須ツールだと思います。

  1. メールヘッダの「To:」に dareka@dokoka.net がないメールは受信しない。 これで 90%くらいのフィルタリングができます。 ただし、このようにすると自分が加入しているML(メーリングリストのメール)が受けられなくなります。 よって、受けたいMLのアドレスを指定して受信できるようにします。 これを設定するには[email_count_max]を0にして、[email_except_to/2]に受けたいメールの「To:」に書かれるべきアドレスを分割数20で列記します。 以下は私の例です。
    [email_except_to/2]
    20	dareka@dokoka\.net
    20	xxxxxxxx@xxxx\.com
    20	xxxxxxxx@xxxxxx\.xxxxxxxx\.or\.jp
    20	xxxx@xxxx\.xxxxxxxxxxxxx\.co\.jp
    
    [email_count_max]
    0
    
  2. 上記のフィルタリングをしてもニュースメールの類には宛先を dareka@dokoka.net で送ってくるのがあります。 これをメールヘッダの「From:」で更にフィルタリングします。 [email_except_from/2]に受けたくないアドレスを分割数0で列記します。 自分が送ったメールは常に受信したいので、分割数20で自分の持っているメールアドレスを列記します。 以下は私の例です。
    [email_except_from/2]
    0
    MAILER-DAEMON(%email\.sky\.(cdp|kdp|tdp|dtg)\.ne\.jp)?@email\.sky\.(cdp|kdp|tdp|dtg)\.ne\.jp
    0	MAILER-DAEMON@sky\.(tu-ka|tkk|tkc)\.ne\.jp
    0	MAILER-DAEMON@jp-[dhrtcknsq]\.ne\.jp
    0	MAILER-DAEMON@docomo\.ne\.jp
    0	news@marine\.ne\.jp
    0	2knet_partner@fresh21\.com
    (省略)
    20	dareka@dokoka\.net
    20	dareka1@dokoka\.net
    (省略)
    
  3. 1つ考慮しないといけないのですが、エラーメールが発生した場合に1と2のフィルタリングが通過方向に「or」だったら、メールの無限ループに陥る可能性があります。 これを避けるために、リプライされたメールは私のもう1つのメールアドレス dareka1@dokoka.net に流すことにしました。 以下は私の例です。
    [email_replyto]
    dareka1@dokoka.net
    
  4. 以上のフィルタリングでの結果が出ました。 sky.pl を設置した同じディレクトリに sky.log ができるので、このログを見て結果判定しました。
    o:チェックOK
    x:チェックNG
    -:チェックスルー(チェックされない)
    
    とすると、以下の組み合わせがあり、その結果を同時に示します。
    To From 結果
    -  -    転送しない
    -  o    転送する
    -  x    転送しない
    o  -    転送する
    o  o    転送する
    o  x    転送しない
    x  -    このケースはない
    x  o    このケースはない
    x  x    このケースはない
    
    全てのケースが発生しないので、断言するのは難しいのですが、どうも x が優先されるようです。 よって、メールの無限ループを回避する方向に動作するように見えます。



とうとう禁断の sky.plスクリプトの改造をやってしまいました

ほんのちょこっとだけです。 この改造を有効にするためには skt.dat の設定変更も必要です。

携帯電話ではメール一覧表示では送信者のメールアドレスしか出ないのです。 そこで、この送信者のアドレス情報に「メール番号」とそのメールの「分割メール順番」を出すようにしてみました。
  1. sky.plの改造
    sky.plを JNoteで開いて「sleep」をキーに検索します。 すると以下のようなステートメントが出てきますので、次のようにします。 以下は改造後のものです。
    			if ($i > 0) {
    				sleep(9);
    			}
    			if ($email_send_reverse eq "yes") {
    				# メールを逆順で転送するなら
    				$j = $email_count - $i - 1;
    			} else {
    				$j = $i;
    			}
    			&SEND_MAIL($subject_jis[$j], "", $email_to, "", "", $subject_jis[$j], $priority,"", $text_part_jis[$j]);
    
  2. sky.dat の設定変更
    sky.pl の改造に伴い、sky.dat を以下のように変更します。
    [macro_subject_1]
    \number-\part.\from
    
    [macro_subject_2]
    \number-\part.\from
    
    [macro_bodyheader_1]
    /\subject/\n\n
    
    [macro_bodyheader_2]
    
このようにすると以下の動作となります。 ちょっとトリッキーな改造ですが、携帯電話でのメール受信が格段に使いやすくなりまた。