Skip to content

[Bug]: Create New Email Account times out connecting to Outlook (via Davmail) with large number of folders #203

@helios210

Description

@helios210

Bug Description

When connecting to a personal Outlook account via DavMail, if the account has enough folders that folder enumeration is not completed within 30 seconds, the create new email account fails, despite the authentication with DavMail succeeding (according to the logs).

Would be resolved if mail-archiver could expose an environment variable to change the timeout value.

Steps to Reproduce

  1. Create a personal Outlook account with >100 folders
  2. Add the Outlook account to a docker DavMail instance
  3. Point Mail-Archive at the DavMail instance
  4. Observe DavMail logs and wait for Mail-Archive to error, failing to add the account.

Application Version

2511.2

Installation Type

Docker

Management Tools

Portainer Community

Host System

Docker running on Debian

Mail Provider

Outlook Personal (via DavMail)

Relevant Log Output

Testing connection for account: Outlook (via DavMail), Server: davmail:1143

info: MailArchiver.Services.EmailService[0]

      Testing connection to IMAP server davmail:1143 for account Outlook (via DavMail) (redacted@outlook.com)

info: MailArchiver.Services.EmailService[0]

      SASL PLAIN not available for account Outlook (via DavMail), using fallback authentication

fail: MailArchiver.Services.EmailService[0]

      Connection test failed for account Outlook (via DavMail): Operation timed out after 30000 milliseconds

      System.TimeoutException: Operation timed out after 30000 milliseconds

       ---> System.Threading.Tasks.TaskCanceledException: A task was canceled.

         at MailKit.Net.NetworkStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)

         --- End of inner exception stack trace ---

         at MailKit.Net.NetworkStream.ReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)

         at MailKit.Net.Imap.ImapStream.ReadAheadAsync(Int32 atleast, CancellationToken cancellationToken)

         at MailKit.Net.Imap.ImapStream.ReadTokenAsync(String specials, CancellationToken cancellationToken)

         at MailKit.Net.Imap.ImapCommand.StepAsync()

         at MailKit.Net.Imap.ImapEngine.IterateAsync()

         at MailKit.Net.Imap.ImapEngine.RunAsync(ImapCommand ic)

         at MailKit.Net.Imap.ImapEngine.QuerySpecialFoldersAsync(CancellationToken cancellationToken)

         at MailKit.Net.Imap.ImapClient.OnAuthenticatedAsync(String message, CancellationToken cancellationToken)

         at MailKit.Net.Imap.ImapClient.AuthenticateAsync(Encoding encoding, ICredentials credentials, CancellationToken cancellationToken)

         at MailArchiver.Services.EmailService.AuthenticateClientAsync(ImapClient client, MailAccount account) in /app/Services/EmailService.cs:line 112

         at MailArchiver.Services.EmailService.TestConnectionAsync(MailAccount account) in /app/Services/EmailService.cs:line 2768

fail: MailArchiver.Services.EmailService[0]

      Connection timed out - server did not respond in time

warn: MailArchiver.Controllers.MailAccountsController[0]

      Connection test failed for account Outlook (via DavMail)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions