Connection error with Dutch IMAP server

The issue is regarding imap.ziggo.nl:993

I can connect to this IMAP server using other clients (Apple Mail, Windows Mail), no problem.

The logs contain the following exception being thrown:

14:08:28.334|001|   eM Client 10.0.3530+f0b89b73a0 (Windows)
14:08:28.336|019|   Account's UID is 105f7082-b672-4d42-bbc5-a7ae3e6ab21c
14:08:28.336|019|   AccountBase.ChangeOnlineState : State changed to ONLINE due User
14:08:28.337|019|   WARNING no INBOX folder found to watch!
14:08:28.337|019|   >>> ListFoldersAsync(): Start
14:08:28.337|019|   >>> Starting account synchronization
14:08:28.345|019|   01:   Connecting to imap.ziggo.nl:993...
14:08:58.361|019|   01: A1 LOGOUT
14:08:58.395|019|   01: --- RECEIVE: CLOSED
14:08:58.662|019|   01: --- CMD LOGOUT WAS CANCELLED
14:08:58.662|019|   01:   Connection 1 was closed, deliberate = False
14:08:58.662|019|   >>> COMMAND CONNECTION EXCEPTION (retry: True): MailClient.Accounts.ConnectionException: Verbinding opzetten met de server is mislukt.
14:08:58.662|019|    ---> System.IO.IOException: Geen reactie van de server binnen de time-out van 30s.
14:08:58.662|019|      at MailClient.Imap.Base.Connection.ConnectAsync(Func`2 getStream, CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:08:58.662|019|      --- End of inner exception stack trace ---
14:08:58.662|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Imap.ConnectionPool.AcquireConnectionAsync(Folder mailFolder, Boolean noSelect)
14:08:58.662|019|      at MailClient.Protocols.Imap.ConnectionContext.CreateContextAsync(ImapAccount account)
14:08:58.662|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.ListFoldersAsync(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.GetFolderList(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Common.FolderSynchronizer.<>c__DisplayClass18_0.<EnqueueGetFolderList>b__0(WorkerStatus status, CancellationToken cancellationToken)
14:08:58.662|019|      at MailClient.Protocols.Imap.ImapActionCommand.ExecuteInternalSync(WorkerStatus status)
14:08:58.662|019|      at MailClient.Protocols.Imap.ImapActionCommand.Execute(WorkerStatus status)
14:08:58.663|019|   >>> COMMAND CANCELED
14:08:58.663|019|   >>> ListFoldersAsync(): Start
14:08:58.663|019|   02:   Connecting to imap.ziggo.nl:993...
14:09:28.682|019|   02: A1 LOGOUT
14:09:28.697|019|   02: --- RECEIVE: CLOSED
14:09:28.982|019|   02: --- CMD LOGOUT WAS CANCELLED
14:09:28.982|019|   02:   Connection 2 was closed, deliberate = False
14:09:28.983|019|   >>> COMMAND CONNECTION EXCEPTION (retry: True): MailClient.Accounts.ConnectionException: Failed opening connection to server.
14:09:28.983|019|    ---> System.IO.IOException: No server response within 30 second timeout.
14:09:28.983|019|      at MailClient.Imap.Base.Connection.ConnectAsync(Func`2 getStream, CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:28.983|019|      --- End of inner exception stack trace ---
14:09:28.983|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Imap.ConnectionPool.AcquireConnectionAsync(Folder mailFolder, Boolean noSelect)
14:09:28.983|019|      at MailClient.Protocols.Imap.ConnectionContext.CreateContextAsync(ImapAccount account)
14:09:28.983|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.ListFoldersAsync(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.GetFolderList(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Common.FolderSynchronizer.<>c__DisplayClass18_0.<EnqueueGetFolderList>b__0(WorkerStatus status, CancellationToken cancellationToken)
14:09:28.983|019|      at MailClient.Protocols.Imap.ImapActionCommand.ExecuteInternalSync(WorkerStatus status)
14:09:28.983|019|      at MailClient.Protocols.Imap.ImapActionCommand.Execute(WorkerStatus status)
14:09:28.983|019|   >>> ListFoldersAsync(): Start
14:09:28.983|019|   03:   Connecting to imap.ziggo.nl:993...
14:09:59.004|019|   03: A1 LOGOUT
14:09:59.021|019|   03: --- RECEIVE: CLOSED
14:09:59.304|019|   03: --- CMD LOGOUT WAS CANCELLED
14:09:59.304|019|   03:   Connection 3 was closed, deliberate = False
14:09:59.305|019|   >>> COMMAND CONNECTION EXCEPTION: MailClient.Accounts.ConnectionException: Failed opening connection to server.
14:09:59.305|019|    ---> System.IO.IOException: No server response within 30 second timeout.
14:09:59.305|019|      at MailClient.Imap.Base.Connection.ConnectAsync(Func`2 getStream, CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:59.305|019|      --- End of inner exception stack trace ---
14:09:59.305|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Imap.ConnectionPoolEntry.ConnectInternalAsync(CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Imap.ConnectionPool.AcquireConnectionAsync(Folder mailFolder, Boolean noSelect)
14:09:59.305|019|      at MailClient.Protocols.Imap.ConnectionContext.CreateContextAsync(ImapAccount account)
14:09:59.305|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.ListFoldersAsync(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Imap.ImapFolderSynchronizer.GetFolderList(IListFoldersProgress progress, Folder homeFolder, CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Common.FolderSynchronizer.<>c__DisplayClass18_0.<EnqueueGetFolderList>b__0(WorkerStatus status, CancellationToken cancellationToken)
14:09:59.305|019|      at MailClient.Protocols.Imap.ImapActionCommand.ExecuteInternalSync(WorkerStatus status)
14:09:59.305|019|      at MailClient.Protocols.Imap.ImapActionCommand.Execute(WorkerStatus status)
14:09:59.305|019|   AccountBase.GoOfflineAsync : State changed to OFFLINE due BrokenConnection
14:09:59.305|019|   AccountBase.ChangeOnlineState : State changed to OFFLINE due BrokenConnection
14:09:59.305|019|   >>> Account synchronization finished
14:09:59.306|019|   AccountBase.GoOfflineAsync : State changed to OFFLINE due BrokenConnection

I have WireShark captures available should you want them.

I fixed this by setting the email account’s IMAP securty policy Use SSL/TLS on special port (legacy)
I tried both Use SSL/TLS if available and Force usage of SSL/TLS before to no avail.

A clearer error message would be nice.I only figured this out myself because I noticed in the code that the log was supposed to say Connecting to imap.ziggo.nl:993 with TLS ..., so the with TLS part was missing, even though I specified that it should be used.

Always use 993 with SSL/TLS on special port (legacy)

That is the correct way. I learnt that a long time ago.