やるきなし

2021/08/18 16:26 / fetchmail には UTF-8 support がない

メールサーバ(Courier Mail Server)から手元の独自メールサーバに fetchmail でメールを取り出しているのだけど(POP),fetchmail は UTF-8 をサポートしておらず,8bit を含む Subject のメールは POP される際に Courier Mail Server 側で 以下のように変換される.

MUA がこういった表示をしているのかと思ってたのだけど,fetchmail の問題で Courier Mail Server が変換していた.大抵 Subject は MIME で Encode されて 7bit で送信されるので,8bit Subject で送信されるのは SPAM がほとんどだけどちょっと気になる.

Received: from pop.example.com [xx.xx.xx.xx]
    by client.example.com with POP3 (fetchmail-6.4.0.beta4)
    for <myn@localhost> (single-drop); Tue, 17 Aug 2021 20:50:24 +0900 (JST)
From: Mail Delivery Subsystem <postmaster>
Subject: Cannot display Unicode content
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="=_XXXXXX-XXXXXXXXXX"



--=_XXXXXX-XXXXXXXXXX
Content-Type: text/plain

This E-mail message was determined to be Unicode-formatted
but your E-mail reader does not support Unicode E-mail.

Please use an E-mail reader that supports POP3 with UTF-8
(see https://tools.ietf.org/html/rfc6856.html).

This can also happen when the sender's E-mail program does not
correctly format the sent message.

The original message is included as a separate attachment
so that it can be downloaded manually.

--=_XXXXXX-XXXXXXXXXX
Content-Type: message/global

https://gitlab.com/fetchmail/fetchmail/-/issues/14 のとおり Issue 登録はされている.

なお,fetchmail には他に 32bit 問題があって,サーバのスプール容量が 2G を超えると log に spool サイズがマイナスで表示される,というのがあって,直る気配がない.ログを漁ってたらちょうどマイナスに切り替わるタイミングがあったので,以下.

fetchmail: 68112 messages (68112 seen) for myn at mail.example.com (2137611084 octets).
fetchmail: 68113 messages (68112 seen) for myn at mail.example.com (-2145081713 octets).

ちなみに,以前は Courier Mail Server 側で UTF8 コマンドのチェックをしていなかったはずで,調べてみたら以下の commit とかで導入されたらしい.

追記 (2021/9/3)

fetchmail 6.4.0~beta4-3+deb10u1 を bullseye の 6.4.16-4 に上げたら,上記 (-2145081713 octets). が表示されなくなった.加えて改行まで消える様子で,log がやたら見づらい...どうやら report.c の bug で https://gitlab.com/fetchmail/fetchmail/-/commit/d3db2da1d13bd2419370ad96defb92eecb17064c のパッチが必要な様子.修正すると,(8367740453 octets) とか表示された...Maildir でため過ぎ...

参考: