IMAP受信時のエラーNo.04068
さん 18/10/11 20:46
 
 お世話になります。
 たびたびの質問で、申し訳ありません。

 IMAP受信をすると、下記のエラーが表示され、うまく受信することができません。

----------
IMAP IDLEを監視する用の情報が生成出来ませんでした。制限数オーバーだと思います。
----------

 一応やり取り記録を張ってみますが、何か解決法はありますでしょうか。
 ちなみに、受信しようとしたメールアドレスは、レンタルサーバーに設定した独自
ドメインのアドレスで、まだメールが1通もない状態です。
 また、同じドメインの他のアドレスは正常に受信できます。
 ☆ 一部伏せ字にしている箇所があります。

----------
****IMAP4受信:xxxx@xxxx.net
I サーバーを検索中 - xxxx.ne.jp
I 接続中 - 163.44.187.13 (port=993,IMAP4)
I 接続完了
I SSL初期化中(TLS1.0/TLS1.1/TLS1.2)
I 暗号化開始 (TLS1.2/AES_256/256bit)
R * OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE
 AUTH=PLAIN AUTH=LOGIN] Dovecot ready.
I アカウント/パスワードを送信
S ****
R C106 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE I
DLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS THREAD=ORDEREDSUBJECT MU
LTIAPPEND URL-PARTIAL CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTE
NDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SE
ARCH LIST-STATUS SPECIAL-USE BINARY MOVE QUOTA] Logged in
S C107 LIST "" *
I IMAPフォルダ一覧を取得中
R * LIST (\HasNoChildren \Sent) "/" Sent
  * LIST (\HasNoChildren \Drafts) "/" Drafts
  * LIST (\HasNoChildren \Trash) "/" Trash
  * LIST (\HasNoChildren \Junk) "/" Junk
  * LIST (\HasNoChildren) "/" INBOX
  C107 OK List completed.
S C108 SELECT "INBOX"
I 既存メールからUIDLを取得します
I メール一覧を取得中(1/1)
R * FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
  * OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags
permitted.
  * 0 EXISTS
  * 0 RECENT
  * OK [UIDVALIDITY 1539257528] UIDs valid
  * OK [UIDNEXT 1] Predicted next UID
  C108 OK [READ-WRITE] Select completed (0.000 secs).
I 0 / 0 済み (0Kバイト)
E IMAP IDLEを監視する用の情報が生成出来ませんでした。制限数オーバーだと思い
ます。
----------

 以上、よろしくお願いいたします。

[ ]
RE:04068 IMAP受信時のエラーNo.04069
秀まるお2 さん 18/10/12 09:58
 
 IMAP IDLEを監視する用の情報というのは、あくまでプログラム内部での話になり
ます。この情報は、最高で16個まで生成できるようにしています。

 例えばIMAP IDLE監視するアカウントが16個以上あるとこのエラーが起こりえま
すけども、そういうことじゃないですよね。

 IMAP IDLEで監視するアカウントが1個だけだとしたら・・・たぶん最初はエラー
にならないけど、何時間か放置してるとエラーになるとかって話になるでしょうか。

 とりあえず、この辺の制限オーバーになる理由を調べてみて、何か対策をしてみよ
うと思います。とりあえずバグが見つからない場合でも、16個って制限をとっぱら
うことを考えてみます。

[ ]
RE:04069 IMAP受信時のエラーNo.04070
たまちゃん3 さん 18/10/12 10:16
 
IMAPは1つのアカウントであっても複数のメールボックスがある場合,複数のコネク
ションを張ります。

https://tools.ietf.org/html/rfc3501

例えば1つのアカウントで4つのコネクションを張る場合には,4つのアカウントで16
のリミットに達します。

同一IPアドレスから当該サーバにアクセスしている場合は,デフォルトでは制限に引
っかかると思いますので,サーバ側でのアクセス制限の変更も必要になると思います。

GMO側の設定も確かめてみてはどうでしょうか。

[ ]
RE:04070 IMAP受信時のエラーNo.04071
秀まるお2 さん 18/10/12 10:46
 
 秀丸メールの場合は、IMAP IDLEで監視できるのは(どこにも書いてないかもしれ
ないけど)INBOXだけでして、コネクションの数は、1アカウントにつき1つだけ固
定になります。
 (そもそも的に、複数コネクションさせればINBOX以外も監視できるって知りませ
んでしたが)

 なので、IMAP IDLEで監視するアカウントが16個まではOKですが、17個以上に
なると今回のエラーになってしまいます。



 今ちょっとテストした限りは、アカウント2つでIDLE監視させて、新着メールが届
いたり手作業で受信を実行したりしても、内部的なデータの数がどんどん増えてく
(いわゆるメモリリークのバグ)ことは無さそうでした。

 とりあえず、16個の制限を無くして無制限なように修正してみます。

[ ]
RE:04069 IMAP受信時のエラーNo.04072
さん 18/10/12 10:54
 
 お世話になります。

> IMAP IDLEを監視する用の情報というのは、あくまでプログラム内部での話になり
>ます。この情報は、最高で16個まで生成できるようにしています。
>
> 例えばIMAP IDLE監視するアカウントが16個以上あるとこのエラーが起こりえま
>すけども、そういうことじゃないですよね。

 なるほど、そういうことだったんですね。
 確かに16個以上あったと思います。
 メールを移行したかったので、いくつかアカウントを追加していましたが、今はい
らないアカウントを消したため、そのエラーは出なくなりましたが。
 ありがとうございました。

 それでは。

[ ]