Nokia E90のメールアプリはWEBブラウザと同様、日本語はUTF-8以外は文字化けしてしまいます。そこで、ブラウザと同様にDelegateをPOPプロクシとして受信するメールの文字コードをUTF-8に変換してしまいます。
インストールや起動方法はHTTPプロクシと同じ。違うのは起動オプションだけです。
変換スクリプトの用意
MIMEデコードと文字コードのUTF-8への変換はdelegateが行ってくれますが、それだけだとメールのヘッダに
Subject: メールの件名
のようにUTF-8の文字列がそのまま入ってしまい、受信した際に件名や送信者の名前などが文字化けしてしまいます。受信した際に文字化けしないようにするために、UTF-8になった文字列を再度MIME形式にエンコードする必要があります。そこで下記のようなスクリプトを作成しておきます。ここではencode.plという名前をつけることにします。
#!/usr/local/bin/perl -w
use Encode;
undef $/;
$_ = <>;
@x = split(/\n/,$_);
$xx = '';
$xxx='';
foreach $xx (@x){
$xx = encode("MIME-header",decode("utf8",$xx));
$xxx .= $xx."\r\n";
}
print $xxx;
変数名はちょー適当。もっと綺麗な書き方もできるけど、とりあえず動けばよしということでこんな感じです。
CFIスクリプトの用意
次に、次のようなCFIスクリプトをmy.cfiとか適当な名前で作成します。
#!cfi Header-Filter: /var/lib/encode.pl
これだけ。encode.plは先ほど作成したperlのスクリプトです。
delegateの起動オプション
最後にdelegateの起動。
/usr/sbin/delegate -P110 SERVER=pop://mail.mopera.net CHARCODE=UTF-8 REMITTABLE=pop PERMIT="pop:*:*" FTOCL=/var/lib/my.cfi
FTOCLで指定するのは先ほど作成したCFIスクリプトです。上記のオプション指定ではポート110へのPOPアクセスをmail.mopera.netに転送します。
メーラの設定
こんな感じで、POPサーバにdelegateを動かしているサーバを指定します。ユーザ名/パスワードは本当のPOPサーバのものです。
上記で、文字化けせずメールを受信できるようになりました。


はじめまして。いつも参考にさせていただいています。最近、E61iを入手し上記にあるdelegateによるPOPプロクシを作成しようと思って試行錯誤しています。参考にさせていただいたencode.plですが、うまく動かないようです。すいません、perlの知識不足でどこをどう変更すればよいのかわかりません。改行コードあたりかなと踏んでいるのですが…orz もし可能でしたら教えていただけるとうれしいです。telnetでpopして確認してみるとmailheaderが改行されずに出力されているみたいです。printの前にxxx$の所に改行コード\nを適切に入れてやればいいのでしょうか..うーむ。
こんにちは。
改行がうまく行っていないということであれば、
$xxx .= $xx,”\r\n”;
の部分が怪しいです。ここを
$xxx .= $xx,”\n”;
にしてみるとどうでしょうか?
seri様
ご返答ありがとうございます。
>$xxx .= $xx,”\n”;
でもダメでした。
$xxx .= “$xx,\r\n”;
とした所、なんとなくうまくいったような気がしたの
ですが、改行毎に , が付いてしまうのと、
Subject行がうまく整形できていないようです。
最近、E51も購入し、実はテストはE51にて実施しています。
一度、E61でテストしなおしてみます。(–;うーん。。
ごめんなさい!私の記載ミスです。
$xxx .= $xx,”\r\n”;
は
$xxx .= $xx.”\r\n”;
が正解です。
なんかおかしいなぁと思って自分のスクリプトを見たら、こっちはあってました・・・。
seri様
正常に稼動いたしました!ありがとうございました。
原因ですが当方のdelegateの設定に勘違いがあり..orz
誠にお恥ずかしい限りです。
有用な情報の提供とseri様のご返答、感謝いたします!
ありがとうございました~。
これで+J for s60を待たずに購入したE51で快適な
日本語環境がある程度整いました。