[Perl] Mail::IMAPCilentで日本語のキーワードをSearchする

こんばんは。
洗濯物を今朝干してきたら、豪雨にたたられているおじいさんです。
まあ、テラスに干してあるので、振り込んでくることはないでしょうが湿気ているでしょうな。失敗失敗。
さて、本題は、IMAPで検索する際の話です。

IMAPの Searchコマンドは高性能です。
本文の検索だってできちゃいます。でも、日本語の場合どうするんだろう?というのがあります。そういう時は、CHARSETを指定します。


#!/usr/bin/perl -w

use utf8;

use Encode;
use Mail::IMAPClient;

my $imap = Mail::IMAPClient->new(
Server => "xxxx",
User => "xxx",
Password => "xxx"
);
$imap->Debug(1);
$imap->connect() or die;
$imap->IsAuthenticated() or die;
$imap->examine("Inbox") or die;

#日本語系テスト
my $keyword = q{charset UTF-8 or TEXT "あいうえお" or TO "あいうえお" or CC "あいうえお" SUBJECT "あいうえお"};
$keyword = encode("utf8", $keyword);
$imap->search($keyword);

$imap->close();


えーっと、Dovect0.99では無理です。Dovecot1.0系ならばこれで動きました。
やっぱり、Dovecot0.99はダメですねー。なっちゃいない。

それと、CHARSETはUTF-8以外ダメなのかというと、そうではありません。
ISO-2022-JPも使えます。その際は、encodeもjisに変換しなければなりません。
でもなんだかUTF-8の方がちゃんと動作しているような気配です。ISO-2022-JPの場合、何か知りませんが日本語のキーワードが長くなると、Dovecot側がエラーを返してきたんですね。
しょうがないので、UTF-8を使ってます。



ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック