Outlook 2019 and push notifications

Laura Smith n5d9xq3ti233xiyif2vp at protonmail.ch
Thu Feb 10 11:13:49 UTC 2022


Is there some secret config sauce I'm unaware of to get IMAP push notifications working with Outlook ?

My present situation is that non-Outlook users (e.g. Apple iOS, Apple Mail etc.) work perfectly with the config below.  New emails get pushed, deletes get reflected, all is happy in the world.

But with Outlook nothing. You send a user an email, nothing happens in their inbox until you manually refresh by checking for new mails or waiting for the auto-check to kick in (sometimes switching between IMAP folders also does the trick).

I know Outlook has a long history of being a mess when it comes to standards compliance, but surely it can't be this bad ?

doveconf -n :

# 2.3.18 (9dd8408c18): /etc/dovecot/dovecot.conf
# Pigeonhole version 0.5.18 (0bc28b32)
# OS: Linux 5.10.0-11-amd64 x86_64 Debian 11.2 xfs
# Hostname: foobar.example.com
auth_verbose = yes
auth_verbose_passwords = sha1:7
doveadm_password = # hidden, use -P to show it
imap_capability = +SPECIAL-USE
imapc_features = rfc822.size fetch-headers fetch-bodystructure
imapc_port = 993
imapc_ssl = imaps
mail_location = maildir:/foo_data/mail/%d/%n/Maildir
mail_plugins = notify replication push_notification
managesieve_notify_capability = mailto
managesieve_sieve_capability = fileinto reject envelope encoded-character vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date index ihave duplicate mime foreverypart extracttext imapsieve vnd.dovecot.imapsieve
namespace inbox {
  inbox = yes
  location =
  mailbox "Deleted Messages" {
    auto = no
    special_use = \Trash
  }
  mailbox Drafts {
    special_use = \Drafts
  }
  mailbox Junk {
    auto = subscribe
    special_use = \Junk
  }
  mailbox Sent {
    special_use = \Sent
  }
  mailbox "Sent Messages" {
    special_use = \Sent
  }
  mailbox Trash {
    special_use = \Trash
  }
  prefix =
}
passdb {
  args = /etc/dovecot/local_sql_users.conf
  driver = sql
}
plugin {
  imapsieve_mailbox1_before = file:/etc/dovecot/imap_sieve/spam.sieve
  imapsieve_mailbox1_causes = COPY
  imapsieve_mailbox1_name = Junk
  imapsieve_mailbox2_before = file:/etc/dovecot/imap_sieve/ham.sieve
  imapsieve_mailbox2_causes = COPY
  imapsieve_mailbox2_from = Junk
  imapsieve_mailbox2_name = *
  sieve = file:~/sieve;active=~/.dovecot.sieve
  sieve_global_extensions = +vnd.dovecot.pipe +vnd.dovecot.environment
  sieve_pipe_bin_dir = /etc/dovecot/imap_sieve
  sieve_plugins = sieve_imapsieve sieve_extprograms
}
protocols = imap lmtp sieve
service auth {
  unix_listener /var/spool/postfix/private/dovecot-auth {
    group = postfix
    mode = 0660
    user = postfix
  }
  vsz_limit = 2 G
}
service doveadm {
  inet_listener {
    port = 11867
    ssl = yes
  }
}
service imap-login {
  process_min_avail = 5
  service_count = 1
}
service lmtp {
  process_min_avail = 5
  unix_listener /var/spool/postfix/private/dovecot-lmtp {
    group = postfix
    mode = 0660
    user = postfix
  }
  user = foo_virtmail
}
service managesieve-login {
  inet_listener sieve {
    port = 4190
  }
  inet_listener sieves {
    address =
    port = 5190
    ssl = yes
  }
}
ssl = required
ssl_ca = </etc/foobar/ssl/certificates/_.example.com.issuer.crt
ssl_cert = </etc/foobar/ssl/certificates/_.example.com.crt
ssl_cipher_list = ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
ssl_dh = # hidden, use -P to show it
ssl_key = # hidden, use -P to show it
ssl_prefer_server_ciphers = yes
userdb {
  args = /etc/dovecot/local_sql_users.conf
  default_fields = uid=foo_virtmail gid=foo_virtmail home=/foo_data/mail/%d/%n
  driver = sql
}
protocol lmtp {
  mail_plugins = notify replication push_notification sieve
  postmaster_address = foo at foobar.com
}
protocol lda {
  deliver_log_format = msgid=%m: %$
  mail_plugins = notify replication push_notification sieve
  postmaster_address = postmaster
  quota_full_tempfail = yes
  rejection_reason = Your message to <%t> was automatically rejected:%n%r
}
protocol imap {
  mail_max_userip_connections = 20
  mail_plugins = notify replication push_notification imap_sieve
}



More information about the dovecot mailing list