IMAP4でsubjectが検索ヒットしない

このQ&Aのポイント
  • IMAP4でsubjectが検索ヒットしない問題について解決方法を探しています。
  • メールサーバのdovecot-1.0.7でIMAPを使用してsubjectを検索すると、一致しているワードが含まれているにもかかわらずヒットしない場合があります。
  • SUBJECTがISO-2022-JPでエンコードされているため、件名が長い場合には分割されるようです。しかし、分割されている場合は個別にしか検索してくれないため、単語がバラバラになった場合には検索にヒットしません。この問題を解決する方法についてアドバイスをお願いします。
回答を見る
  • ベストアンサー

IMAP4でsubjectが検索ヒットしない

メールサーバ(dovecot-1.0.7)にてIMAPでsubject検索すると 一致しているワードが含まれているにもかかわらずヒットしない場合があります。 SUBJECTはISO-2022-JPでエンコードされているようですが 件名が長いと分割されます。 しかし分割されている場合、個別にしか検索してくれないようです。 (なので単語がバラバラになったら検索にヒットしない) (例) Subject: =?iso-2022-jp?B?UmU6IBskQkNtMFUhJzojN24kTjtENmIkLBsoQjIwMTMxMTEx?= =?iso-2022-jp?B?MDAbJEIxXyRHJDkhIxsoQg==?= ↓ Re: 注意:今月の残金が20131111 00円です。 メールのSUBJECTを分割させない、もしくは分割も検索対象に含める場合はどうすれば よいでしょうか。 たとえば以下のようなSUBJECTだとすると・・ (1通目) Re: 注意:今月の残金が2013111100円です。 (2通目) 2013111100円が今月の残金です。 検索ワード”2013111100” では(2)しかヒットしなかったり・・。 日本語、英数字、両方で起こります。なので文字化けではなさそう。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>SUBJECTはISO-2022-JPでエンコードされているようですが  いえ、本来は、BASE64エンコードされているはずです。時々iso-2022jpのものなども見かけますが、MUAで受信するとSubject:が文字化けしているものもあります。  iso2022jpに変換したのち、下記の仕様にしたがって  ⇒( http://www.akanko.net/marimo/data/rfc/rfc2045-jp.txt )  変換されたものであるはずです。  本来は、1so-2022jpなりにエンコードした後で、ascii以外(厳密には違う)の文字をbase64エンコードします。 → UmU6IOazqOaEj++8muS7iuaciOOBruaui+mHkeOBjDIwMTMxMTExMDDlhobjgafjgZnjgII= 本来は、 → =?ISO-2022-JP?B?GyRCQ20wVSEnOiM3biROO0Q2YiQsGyhCMjAxMzExMTEw?= =?ISO-2022-JP?B?MBskQjFfJEckOSEjGyhC?= 出なければならない。2行に分かれていますね。これは、「encoded-word は 75バイト以内でなければならない.」というルールによるものです。  様々なMUA、特にメールフォームなどで送信されてくるメールヘッダには、正式なルールに従っていないものがあります。 ★対策:一旦iso2022jpにデコードしてから検索する。  この時に、改行コードは削除されて一行に戻るはずです。 Perlでしたら、  ⇒Base64エンコード・デコードする( http://www.din.or.jp/~ohzaki/perl.htm#JP_Base64 ) を参考にしてください。

john_shishi
質問者

お礼

確かにBASE64でエンコードされていますね。この辺の知識がおぼろげだったので 認識改めました。 使用しているMUAは改行コードが削除される前に検索をしていたようです。 IMAPのsearchを使っているようで、ここに問題がありそうでした。 ありがとうございます。

関連するQ&A

  • 検索エンジンにヒットさせたくない場合

    検索エンジンにヒットさせたくない場合はどのような手がありますか? 例えば、 HPに「田中みのり」とう名前が記載されている場合、「田中みのり」を検索すればヒットしますよね。 これは、ヘッダーでしたっけ? 羅列した文字の中に「田中みのり」という文字があるからですよね? これを「田中実」と書き換えた場合、「田中みのり」と検索してもヒットしませんか? *「田中みのり」で1ワードとした場合です。

  • mail()で送信したメールのタイトル(Subject)がきちんと表示

    mail()で送信したメールのタイトル(Subject)がきちんと表示されません。’コンタクトフォーム’とタイトルに表示させようとしたところ,次のように表示されます。 =?ISO-2022-JP?B?GyRCJTMlcyU/JS8lSCVVJSkhPCVgGyhC?= これで良いはずと思っていたのですが,念のため,ヘッダー情報を参照してみると, =?ISO-2022-JP?Q?=3d=3fISO-2022-JP=3fB=3fGyRCJTMlcyU/JS8lSCVVJSkhPCVgGyhC?= =?ISO-2022-JP?Q?=3f=3d?= となっておりました。原因は,mail()関数が,「=?ISO-2022-JP?Q?=3d=3f   =?ISO-2022-JP?Q?=3f=3d?=」を自動的に付加していることにありそうだということまでは想像がついたのですが,これの回避方法が分かりません。 メールヘッダーの簡単な解説を含めて,この場合の回避方法を教えていただきたいです。よろしくお願いします。

    • ベストアンサー
    • PHP
  • getMsg($msg_id)で、読み取ったメールソースから、本当のSubjectを復元したい、どうすればいいですか?

    メールのソースを見てみると、タイトルのほうが、こんなフォーマットで書かれております。 英語のタイトルは、Subject: Welcome to Flickr! - Read me 日本語のタイトルなら、 Subject: =?iso-2022-jp?B?GyRCJSIlcyUxITwlSCROJCo0aiQkGyhC?= 又は、 Subject: =?shift_jis?B?gZqQVpCii0mDR4OUg0CDk4NRg4qDSYOTksqQTYx2ieYgg1SDfYFbg0yDg4OTg3mBW4OTikqOboFJ?= そのメールのタイトルをPHPプログラミングで扱いたいんですけど、英語の場合は、何も問題なく、日本語を扱う場合は、どうやって、正常に戻せますか? 文字コード変換関数を使って $subject = mb_convert_encoding($subject, "EUC-JP","ISO-2022-JP"); $subject = mb_convert_encoding($subject, "EUC-JP","SJIS"); をいろいろ確かめましたけど、だめでした。 ご存じの方がいっらしゃいましたら、どうぞお教え下さい。 05-06-01 15:42 困り度1:暇なときに回答ください 回答件数:3件 この質問に対する回答は締め切られました

  • 再生回数低でも検索ワードが合えばヒットしますか??

    ユーチューブに動画投稿した場合に、 再生回数が数回みたいな動画でも 検索ワードが合えばヒットするのでしょうか? ニッチな動画を投稿しようと考えているのですが、数回ぐらいの再生数だとだんだん 同じキーワードで検索しても無視されるようになる気がするのですが、 本当に検索ワードがなければそういう動画もヒットするように設定されているのでしょうか? アドバイスよろしくおねがいします。(*´∀`)

  • YAHOOなどの検索で自分のホームページをすぐにヒットさせるには?

    YAHOOなどの検索エンジンで検索ワードをいれたときに自分のホームページを一番最初に(一番最初ではなくても、せめて最初の方に。。)ヒットするようにするにはどうすればよいのでしょうか?何かYAHOOなどの検索エンジンの方に特別な登録かなんかをする必要があるのでしょうか?? 小耳にはさんだのは、YAHOOなどの検索エンジンの方から、検索ワードに登録しますか、みたいな感じでオファーがある場合があるとか??それはやはりかなり大企業だったりそういう場合なのでしょうか? 私はバンドをやっていて、バンドのホームページを作ったのでそれをヒットするようにしたいのですが。。。 質問の意味が分かりづらければすみません!!(>_<) 宜しくお願いします!

  • 【検索】「含まれる文字列」で検索してヒットしない

    Win98SEの「検索」-「ファイルやフォルダ」-「含まれる文字列」で 実際にある文字列を入力してもヒットしません。 ヒットさせるには、どうすればよいでしょうか? ヒットさせたいファイルは WordやExcel2000で作成し、何度か編集済みのものです。 機種:NECMateNX MA46H 他何台かあり OS:Win98SE 使用しているアプリ:Word/Excel2000 ヒットさせたい文字列:テキストボックスではなく、            普通に文字入力している内容            (例) 前橋店 とか  伊香保温泉  とか            文字列の前後に「*」を付けてもダメでした。 ファイルの名前の一部を入力して検索した場合は 正しく機能して結果が表示されています。 講習でこの機能を説明したいので、 どなたかヒットさせる方法をご存知でしたら 教えてください。 よろしくお願いします。<(_ _)>

  • ホームページを検索エンジンにヒットするにはどちらが有効ですか?

    ホームページを検索エンジンにヒットするにはどちらが有効ですか? はじめまして。お力をお貸しください。 現在、私の商業用のホームページがあります。 しかし、私自身の全く違う業種のホームページを立ち上げる予定です。 新しい業種のホームページは、 地域密着型の内容を提供するので、 yahooなど検索エンジンに多くヒットさせたいと思ってます。 その場合 A,既存の私のホームページをそのまま流用し、別ページに作る アドレスは(例)http://☆☆☆.com/○○○/ …○○○○に新しいページアドレスが入る B、新しくプロバイダ契約して分ける アドレスは(例)http://○○○.com/○○○ どちらヒット確率が高いですか? ちなみにあまりお金はかけたくないので、Bでもワードヒットが大差ない場合はBで進めたいと思ってます。 どうぞよろしくお願いします。

    • ベストアンサー
    • CSS
  • このエラーメッセージの意味を教えてください

    Your message with Subject: =?ISO-2022-JP?B?UkU6UmU6IFJFOlJlOiAbJEIlZCVVJSolLz5oQSUbKEI=?= =?ISO-2022-JP?B?GyRCN3QkTjdvGyhC?= could not be delivered to the following recipients: *******@rose.freemail.ne.jp Please do not resend your original message. Delivery attempts will continue to be made for 5 day(s). (******は宛先のアドレスです)

  • 効率的なweb検索裏技

    複数のキ-ワードでweb検索をする場合、キ-ワード間にスペースを入れますが、上手くヒットしません。 そこで、一つのてキ-ワードで先ず検索し、ヒットしたものを更に次のキ-ワードで絞る等の方法ないでしょうか。 何か裏技があったら教えてください。

  • nkf -mについて

    procmailの設定で :0 * ^Subject:.*iso-2022-jp * ^Subject:.*\/.* * ? echo "$MATCH" | nkf -meZ | sed 's/[[:space:]]//g' | egrep 'これは儲かる' /dev/null 「Subjectがiso-2022-jpで、”これは儲かる”という文字列を含む場合そのメールは/dev/nullに送る」という意味になるそうです。 その中にあるnkf -meZのうち、mのオプションの意味が、ネットで検索してもでてきません。これはどういうオプションなのでしょうか。 また、2つめのSubjectのところにある「/」なんですが、これは何のためにあるのでしょうか。