IMAPのSEARCHコマンドに日本語を指定する

追記

mail 2.7.0よりMail#findにcharsetオプションが追加されました。

http://blog.hatena.ne.jp/commis/commis.hatenablog.com/edit?entry=17391345971621212934

環境

  • ruby 2.4.1
  • mail 2.6.6

本題

require 'mail'

Mail.defaults {
  retriever_method(
    :imap,
    address: "",
    port: 143,
    user_name: "",
    password: "",
  )
}
mail = Mail.find(what: :last, count: 1, read_only: true, keys: 'CHARSET "UTF-8" SUBJECT "例えば日本語の件名"')

備考

文字コードと検索条件をダブルクォートでくくること。(自戒)