Rocky Linux 9 (Dovecot 2.3系) から AlmaLinux 10 (Dovecot 2.4.4) へメールサーバを移行したところ、WordPress(Postie)へメール投稿する際に件名が文字化けするようになった。
例えば、“ランドセル” という件名が、 “ã©ã³ãã»ã«” のように文字化けする。 最初はPostie や WordPress、phpなどを疑ったが、原因はその前に件名を修正していた Sieve の header :regex にありました。
状況
もともと使用していた Sieve ルールは件名の先頭に日付(YYYY/MM/DD)を挿入する以下のようなもの。
require ["editheader","fileinto","regex","variables","date"];
if header :regex "Subject" "(.*)" {
set "subj" "${1}";
deleteheader :regex "Subject" ".*";
addheader "Subject" "2026/07/14 ${subj}";
}
Rocky Linux 9 (Dovecot 2.3系) では想定通りに動作していました。
対応
Pigeonhole 2.4 系では regex が Unicode comparator をサポートしたことに気付きました。(Chatgptが) 比較器を明示すると想定通り動作します。
require [
"editheader",
"fileinto",
"regex",
"variables",
"date",
"comparator-i;unicode-casemap"
];
if header :comparator "i;unicode-casemap"
:regex "Subject" "(.*)"
{
set "subj" "${1}";
deleteheader :regex "Subject" ".*";
addheader "Subject" "2026/07/14 ${subj}";
}