POP受信した際の動作ログを出力させて調べてみました。
方法は下記で、モジュール指定は「timestamp,POP3:5」としました。
outlook.office365.com と比較対象として pop.zoho.com から
同じプレーンテキストのメール本文
コード:
.
..
...
を受信した際のログを取得したところ、以下となりました。
outlook.office365.com
コード:
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV:
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ..
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ...
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ....
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: (null)
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering NET_ProcessPop3 3
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering state: 19
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: .
2020-07-05 03:05:51.826000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: (null)
2020-07-05 03:05:51.841000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering state: 15
2020-07-05 03:05:51.841000 UTC - [(null) 18696: Main Thread]: D/POP3 sink: [this=2CA3FD30] Calling ReleaseFolderLock from EndMailDelivery
2020-07-05 03:05:51.841000 UTC - [(null) 18696: Main Thread]: D/POP3 sink: [this=2CA3FD30] ReleaseFolderLock haveSemaphore = TRUE
2020-07-05 03:05:51.857000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering state: 22
2020-07-05 03:05:51.857000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] SEND: QUIT
pop.zoho.com
コード:
2020-07-05 03:05:29.739000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV:
2020-07-05 03:05:29.739000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ..
2020-07-05 03:05:29.739000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ...
2020-07-05 03:05:29.739000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: ....
2020-07-05 03:05:29.739000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: .
2020-07-05 03:05:29.792000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] RECV: (null)
2020-07-05 03:05:29.792000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering state: 15
2020-07-05 03:05:29.855000 UTC - [(null) 18696: Main Thread]: D/POP3 sink: [this=11C731F0] Calling ReleaseFolderLock from EndMailDelivery
2020-07-05 03:05:29.855000 UTC - [(null) 18696: Main Thread]: D/POP3 sink: [this=11C731F0] ReleaseFolderLock haveSemaphore = TRUE
2020-07-05 03:05:29.877000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] Entering state: 22
2020-07-05 03:05:29.877000 UTC - [(null) 18696: Main Thread]: I/POP3 [this=05010D60] SEND: QUIT
本来、メール本文と終端のピリオドまで続けて受信した後に(null)となるはずが、outlook.office365.com の場合は、メール本文最後と終端のピリオドの間にも(null)を受信してしまっていることに注目してください。
この outlook.office365.com がPOP3のRETRコマンドの応答を返してくる際の挙動の違い、これが最初の原因です。
そして、その際になぜか Thunderbird は終端のピリオドを受信メッセージに追記してしまっている、ように見受けられます。
これが他のメールソフトで現象が発生しない原因ということになるでしょう。
したがいまして、outlook.office365.com のPOPゲートと Thunderbird どちらもおかしい、というのが私の結論です。
outlook.office365.com は素直にIMAPで利用されることをおすすめします。