Emails to multiple recipients on same server not getting delivered

John Stoffel john at stoffel.org
Mon Apr 5 21:24:44 EEST 2021


>>>>> "Steve" == Steve Dondley <s at dondley.com> writes:

Steve> When I send an email to a single user on a server, it is received by the 
Steve> user without a problem. But when sending to multiple users, the emails 
Steve> disappear into a black hole. The logs contain no errors and indicate the 
Steve> emails were sent:

How is postfix delivering email to dovecot?  You give your postconf
output, but we need to see oyur master.cf file as well.  I use the
spamass-milter in my postfix config, and my master.cf has something
like this:

# Updated to support + addressing, 20210402
spamass-dovecot unix -     n       n       -       -       pipe
  flags=DRhu user=mail:mail argv=/usr/bin/spamc -u debian-spamd -e
  /usr/lib/dovecot/deliver -a ${recipient} -d ${user}@${domain}
  
As you can guess, my mail setup runs on Debian Buster.  So the details
can matter.  But all my emails are delivered through spamassisin, then
filtered with Sieve on the header into the INBOX or Junk folders.


Steve> Apr  5 13:10:29 email postfix/pipe[31703]: F3A912027D: 
Steve> to=<pete2 at example.org>, relay=spamassassin, delay=1.6, 
Steve> delays=0.12/0/0/1.5, dsn=2.0.0, status=sent (delivered via spamassassin 
Steve> service (X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on 
Steve> email.example.org X-Spam-Level:  X-Spam-Stat))

Steve> Apr  5 13:10:29 email postfix/pipe[31703]: F3A912027D: 
Steve> to=<pete3 at example.org>, relay=spamassassin, delay=1.6, 
Steve> delays=0.12/0/0/1.5, dsn=2.0.0, status=sent (delivered via spamassassin 
Steve> service (X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on 
Steve> email.example.org X-Spam-Level:  X-Spam-Stat))

Steve> However, when I check the inboxes for the recipients, the email is 
Steve> nowhere to be found. I tried lifting the receiving/concurrent limits but 
Steve> to no effect. I have other servers with very similar configurations to 
Steve> this one but I'm not having issues with them. lmtp is the local delivery 
Steve> agent.

Steve> My postconf:

Steve> alias_maps = hash:/etc/aliases
Steve> biff = no
Steve> broken_sasl_auth_clients = yes
Steve> command_directory = /usr/sbin
Steve> compatibility_level = 2
Steve> daemon_directory = /usr/lib/postfix/sbin
Steve> data_directory = /var/lib/postfix
Steve> debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd 
Steve> $daemon_directory/$process_name $process_id & sleep 5
Steve> default_destination_concurrency_limit = 5
Steve> home_mailbox = Maildir/
Steve> inet_interfaces = all
Steve> lmtp_destination_concurrency_limit = 5
Steve> lmtp_destination_recipient_limit = 5
Steve> local_destination_concurrency_limit = 5
Steve> local_destination_recipient_limit = 5
Steve> mail_owner = postfix
Steve> mailbox_size_limit = 3145728000
Steve> mailbox_transport = lmtp:unix:private/dovecot-lmtp
Steve> mailq_path = /usr/bin/mailq
Steve> message_size_limit = 26214400
Steve> milter_default_action = accept
Steve> milter_protocol = 6
Steve> mydestination = $myhostname localhost.$mydomain localhost $mydomain
Steve> mydomain = example.org
Steve> myhostname = email.example.org
Steve> mynetworks_style = subnet
Steve> myorigin = example.org
Steve> non_smtpd_milters = $smtpd_milters
Steve> policyd-spf_time_limit = 3600
Steve> recipient_bcc_maps = pcre:/etc/postfix/recipient_bcc
Steve> recipient_delimiter = +
Steve> sendmail_path = /usr/sbin/sendmail
Steve> setgid_group = postdrop
Steve> smtp_tls_note_starttls_offer = yes
Steve> smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
Steve> smtp_use_tls = yes
Steve> smtpd_banner = $myhostname ESMTP
Steve> smtpd_milters = unix:/opendkim/opendkim.sock
Steve> smtpd_recipient_restrictions = permit_mynetworks, 
Steve> permit_sasl_authenticated, reject_unauth_destination, 
Steve> check_policy_service unix:private/policyd-spf
Steve> smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated 
Steve> defer_unauth_destination
Steve> smtpd_sasl_auth_enable = yes
Steve> smtpd_sasl_local_domain = $myhostname
Steve> smtpd_sasl_path = private/auth
Steve> smtpd_sasl_security_options = noanonymous
Steve> smtpd_sasl_type = dovecot
Steve> smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre
Steve> smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch
Steve> smtpd_tls_cert_file = 
Steve> /etc/letsencrypt/live/email.example.org/fullchain.pem
Steve> smtpd_tls_key_file = /etc/letsencrypt/live/email.example.org/privkey.pem
Steve> smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
Steve> smtpd_use_tls = yes
Steve> unknown_local_recipient_reject_code = 550
Steve> virtual_alias_maps = hash:/etc/postfix/virtual
Steve> virtual_mailbox_limit = 26214400
Steve> virtual_transport = lmtp:unix:private/dovecot-lmtp

Steve> And doveconf:

Steve> # 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf
Steve> # Pigeonhole version 0.5.4 ()
Steve> # OS: Linux 4.19.0-14-cloud-amd64 x86_64 Debian 10.9
Steve> # Hostname: email.example.org
Steve> auth_mechanisms = plain login
Steve> auth_username_format = %Ln
Steve> disable_plaintext_auth = no
Steve> mail_debug = yes
Steve> mail_location = maildir:~/Maildir
Steve> mail_privileged_group = mail
Steve> managesieve_notify_capability = mailto
Steve> managesieve_sieve_capability = fileinto reject envelope 
Steve> encoded-character vacation subaddress comparator-i;ascii-numeric 
Steve> relational regex imap4flags copy include variables body enotify 
Steve> environment mailbox date index ihave duplicate mime foreverypart 
Steve> extracttext
Steve> namespace inbox {
Steve>    inbox = yes
Steve>    location =
Steve>    mailbox Drafts {
Steve>      special_use = \Drafts
Steve>    }
Steve>    mailbox Junk {
Steve>      special_use = \Junk
Steve>    }
Steve>    mailbox Sent {
Steve>      special_use = \Sent
Steve>    }
Steve>    mailbox "Sent Messages" {
Steve>      special_use = \Sent
Steve>    }
Steve>    mailbox Trash {
Steve>      special_use = \Trash
Steve>    }
Steve>    prefix =
Steve> }
Steve> passdb {
Steve>    args = /etc/dovecot/aliases
Steve>    driver = passwd-file
Steve> }
Steve> passdb {
Steve>    driver = pam
Steve> }
Steve> plugin {
Steve>    recipient_delimiter = +
Steve>    sieve = file:~/sieve;active=~/.dovecot.sieve
Steve>    sieve_default = /var/lib/dovecot/sieve/default.sieve
Steve>    sieve_default_name = Defaults
Steve>    sieve_global = /var/lib/dovecot/sieve
Steve> }
Steve> pop3_client_workarounds = outlook-no-nuls
Steve> protocols = " imap lmtp sieve pop3 sieve"
Steve> service auth {
Steve>    unix_listener /var/spool/postfix/private/auth {
Steve>      group = postfix
Steve>      mode = 0666
Steve>      user = postfix
Steve>    }
Steve>    unix_listener auth-userdb {
Steve>      mode = 0666
Steve>    }
Steve> }
Steve> service imap-login {
Steve>    inet_listener imap {
Steve>      port = 143
Steve>    }
Steve>    inet_listener imaps {
Steve>      port = 993
Steve>      ssl = yes
Steve>    }
Steve> }
Steve> service imap {
Steve>    client_limit = 1
Steve> }
Steve> service lmtp {
Steve>    client_limit = 1
Steve>    unix_listener /var/spool/postfix/private/dovecot-lmtp {
Steve>      group = postfix
Steve>      mode = 0600
Steve>      user = postfix
Steve>    }
Steve> }
Steve> service managesieve-login {
Steve>    inet_listener sieve {
Steve>      port = 4190
Steve>    }
Steve> }
Steve> service pop3-login {
Steve>    inet_listener pop3s {
Steve>      port = 995
Steve>      ssl = yes
Steve>    }
Steve> }
Steve> service submission-login {
Steve>    inet_listener submission {
Steve>      port = 587
Steve>    }
Steve> }
Steve> ssl_cert = </etc/letsencrypt/live/email.example.org/fullchain.pem
Steve> ssl_client_ca_dir = /etc/ssl/certs
Steve> ssl_dh = # hidden, use -P to show it
Steve> ssl_key = # hidden, use -P to show it
Steve> userdb {
Steve>    driver = passwd
Steve> }
Steve> protocol lmtp {
Steve>    mail_plugins = " sieve"
Steve> }


More information about the dovecot mailing list