Steve Dondley
2021-Apr-05 17:28 UTC
Emails to multiple recipients on same server not getting delivered
When I send an email to a single user on a server, it is received by the user without a problem. But when sending to multiple users, the emails disappear into a black hole. The logs contain no errors and indicate the emails were sent: Apr 5 13:10:29 email postfix/pipe[31703]: F3A912027D: to=<pete2 at example.org>, relay=spamassassin, delay=1.6, delays=0.12/0/0/1.5, dsn=2.0.0, status=sent (delivered via spamassassin service (X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on email.example.org X-Spam-Level: X-Spam-Stat)) Apr 5 13:10:29 email postfix/pipe[31703]: F3A912027D: to=<pete3 at example.org>, relay=spamassassin, delay=1.6, delays=0.12/0/0/1.5, dsn=2.0.0, status=sent (delivered via spamassassin service (X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on email.example.org X-Spam-Level: X-Spam-Stat)) However, when I check the inboxes for the recipients, the email is nowhere to be found. I tried lifting the receiving/concurrent limits but to no effect. I have other servers with very similar configurations to this one but I'm not having issues with them. lmtp is the local delivery agent. My postconf: alias_maps = hash:/etc/aliases biff = no broken_sasl_auth_clients = yes command_directory = /usr/sbin compatibility_level = 2 daemon_directory = /usr/lib/postfix/sbin data_directory = /var/lib/postfix debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 default_destination_concurrency_limit = 5 home_mailbox = Maildir/ inet_interfaces = all lmtp_destination_concurrency_limit = 5 lmtp_destination_recipient_limit = 5 local_destination_concurrency_limit = 5 local_destination_recipient_limit = 5 mail_owner = postfix mailbox_size_limit = 3145728000 mailbox_transport = lmtp:unix:private/dovecot-lmtp mailq_path = /usr/bin/mailq message_size_limit = 26214400 milter_default_action = accept milter_protocol = 6 mydestination = $myhostname localhost.$mydomain localhost $mydomain mydomain = example.org myhostname = email.example.org mynetworks_style = subnet myorigin = example.org non_smtpd_milters = $smtpd_milters policyd-spf_time_limit = 3600 recipient_bcc_maps = pcre:/etc/postfix/recipient_bcc recipient_delimiter = + sendmail_path = /usr/sbin/sendmail setgid_group = postdrop smtp_tls_note_starttls_offer = yes smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtp_use_tls = yes smtpd_banner = $myhostname ESMTP smtpd_milters = unix:/opendkim/opendkim.sock smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination, check_policy_service unix:private/policyd-spf smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = $myhostname smtpd_sasl_path = private/auth smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre smtpd_sender_restrictions = reject_authenticated_sender_login_mismatch smtpd_tls_cert_file = /etc/letsencrypt/live/email.example.org/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/email.example.org/privkey.pem smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtpd_use_tls = yes unknown_local_recipient_reject_code = 550 virtual_alias_maps = hash:/etc/postfix/virtual virtual_mailbox_limit = 26214400 virtual_transport = lmtp:unix:private/dovecot-lmtp And doveconf: # 2.3.4.1 (f79e8e7e4): /etc/dovecot/dovecot.conf # Pigeonhole version 0.5.4 () # OS: Linux 4.19.0-14-cloud-amd64 x86_64 Debian 10.9 # Hostname: email.example.org auth_mechanisms = plain login auth_username_format = %Ln disable_plaintext_auth = no mail_debug = yes mail_location = maildir:~/Maildir mail_privileged_group = mail 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 namespace inbox { inbox = yes location mailbox Drafts { special_use = \Drafts } mailbox Junk { special_use = \Junk } mailbox Sent { special_use = \Sent } mailbox "Sent Messages" { special_use = \Sent } mailbox Trash { special_use = \Trash } prefix } passdb { args = /etc/dovecot/aliases driver = passwd-file } passdb { driver = pam } plugin { recipient_delimiter = + sieve = file:~/sieve;active=~/.dovecot.sieve sieve_default = /var/lib/dovecot/sieve/default.sieve sieve_default_name = Defaults sieve_global = /var/lib/dovecot/sieve } pop3_client_workarounds = outlook-no-nuls protocols = " imap lmtp sieve pop3 sieve" service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0666 user = postfix } unix_listener auth-userdb { mode = 0666 } } service imap-login { inet_listener imap { port = 143 } inet_listener imaps { port = 993 ssl = yes } } service imap { client_limit = 1 } service lmtp { client_limit = 1 unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix mode = 0600 user = postfix } } service managesieve-login { inet_listener sieve { port = 4190 } } service pop3-login { inet_listener pop3s { port = 995 ssl = yes } } service submission-login { inet_listener submission { port = 587 } } ssl_cert = </etc/letsencrypt/live/email.example.org/fullchain.pem ssl_client_ca_dir = /etc/ssl/certs ssl_dh = # hidden, use -P to show it ssl_key = # hidden, use -P to show it userdb { driver = passwd } protocol lmtp { mail_plugins = " sieve" }
John Stoffel
2021-Apr-05 18:24 UTC
Emails to multiple recipients on same server not getting delivered
>>>>> "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> }