PHP IMAP libraray のimap_search()
機能を使用して、件名の文字列を介して Gmail の受信トレイ内のメールを検索しています。
imap_seach($mbox, 'ALL SUBJECT "<search string>"');
この検索は、英数字の文字列に対しては完全に問題なく返されますが、スラッシュ、コンマ、コロン、一重引用符、ハイフン、および私が知らない他の多くの文字などの特殊文字が含まれていると失敗します。それらをエスケープすることは役に立ちません。それらのいくつかをスペースに置き換えると、場合によっては役立ちますが、すべての場合ではありません。
検索文字列をフィルタリングして、エラーが発生せず結果を返さないようにする標準的な方法はありますか? 件名の文字列をトークン化し、検索文字列からすべての単語を削除しようとしました。これはほとんどの場合機能しますが、すべての単語に英数字以外の文字が含まれている場合は失敗します (これは、1 つまたは 2 つの単語の件名で一般的です)。