Exchange bounces mail because of one non existent recipient

We have an exchange server in our company. When an external sender sends a mail to multiple employees in our company the whole mail is bounced when there is one non existent recipient/mail address in the e-mail.

Can someone explain how to change the exchange setting that all recipients get the mail and only the one mail to the non existent mailbox is bounced?


Too long to comment, but can you actually replicate that issue?

Because that would appear more of a problem for the sender and not necessarily an incorrect configuration of your own mail servers.

SMTP standards allow and expect you to send an identical message to multiple recipients by issuing multiple RCPT commands before submitting the message and expecting the SMTP server to turn that into unique messages for each of the recipients.

(That's how you efficiently send mails with multiple recipients on the To: CC: and Bcc: lines.)

On my test system (I only have a Postfix and not an Exchange server) including an incorrect address between some valid ones does cause an error on that incorrect address, as expected, but when you continue the messages will still be delivered to all the other valid mailboxes.

I expect Exchange to actually do the same, but can be mistaken.

You can test that quite simply by simulating the message delivery with a telnet session :

telnet mailhost 25

  Connected to mailhost
  Escape character is '^]'.
  220  mailhost ESMTP Postfix (Ubuntu)

helo my.hostname

  250  mailhost

mail from: [email protected]

  250 2.1.0 Ok

rcpt to: valid-mail-address-1

  250 2.1.5 Ok

rcpt to: non-existant-mail-address 

  550 5.1.1 <non-existant-mail-address>: Recipient address rejected: User unknown in local recipient table

At this stage an e-mail client will usually stop sending the message and provide a pop-up to the user requesting them to check the rejected e-mail address, but for debugging purposes you can and should be able to continue with a third, valid, recipient address and then submit an actual email message:

rcpt to: valid-mail-address-2

  250 2.1.5 Ok

data

  354 End data with <CR><LF>.<CR><LF>

From: ServerFault <[email protected]>
Subject: test

This is a test.
.
250 2.0.0 Ok: queued as 7210CBD1AA
quit
221 2.0.0 Bye

That results in a new e-mail message in both of the valid mailboxes, despite the error on the middle recipient, but again I don't have access to an exchange server at the moment.


This is set by Recipient Filtering, specifically Recipient Validation. You can disable it with Set-RecipientFilterConfig -RecipientValidationEnabled $false.

The RecipientValidationEnabled parameter specifies whether the Recipient Filter agent blocks messages addressed to recipients that don't exist in the organization. Valid input for the RecipientValidationEnabled parameter is $true or $false. The default setting is $false. When the RecipientValidationEnabled parameter is set to $true, the Recipient Filter agent blocks messages addressed to recipients that don't exist in the organization.