Web Mail Plus Ver 1.05 (2008/05/08)を利用しました。最近の携帯では良いらしいのですが、私が利用している4年ほど前のドコモ P505iSではデータが最後まで受信できずに終了したという意味合いのエラーメッセージが表示される。
ドコモの場合は、「print "Content-Length: $length¥n¥n";」でデータサイズをHTMLのヘッダ情報に必要という事らしいが、この時の$lengthの値が実際のデータより大きくなっていると思われる。
簡単なスクリプトでテストすると、Perlのlengthは改行コードがCR+LFでもLFでもCRでも1文字として処理していうように思われる。Perlのバージョンにより違いがあるのかもしれないし、テンプレートファイルをアップロードする際の改行コードを変更すれば問題は解決するかもしれないが、mail.cgiの最後の部分で、改行コードを統一してからlengthを使うようにした。その結果携帯でのエラーは解消されたので、この設定で利用しています。
■Web Mail PlusのURL
http://www.web-liberty.net/download/mailplus/index.html
ドコモの場合は、「print "Content-Length: $length¥n¥n";」でデータサイズをHTMLのヘッダ情報に必要という事らしいが、この時の$lengthの値が実際のデータより大きくなっていると思われる。
簡単なスクリプトでテストすると、Perlのlengthは改行コードがCR+LFでもLFでもCRでも1文字として処理していうように思われる。Perlのバージョンにより違いがあるのかもしれないし、テンプレートファイルをアップロードする際の改行コードを変更すれば問題は解決するかもしれないが、mail.cgiの最後の部分で、改行コードを統一してからlengthを使うようにした。その結果携帯でのエラーは解消されたので、この設定で利用しています。
### 携帯用データ作成
sub get_mobile_data {
my($data) = @_;
$data =~ s/¥xEF¥xBD¥x9E/¥xE3¥x80¥x9C/g;
$data = Jcode->new($data, 'utf8')->sjis;
$data =~ s/¥r¥n/¥r/g;
$data =~ s/¥n/¥r/;
# return($data, length($data) + ($data =~ s/¥n/¥n/g));
return($data, length($data));
}
■Web Mail PlusのURL
http://www.web-liberty.net/download/mailplus/index.html





