{{tag>tutorial mail}}
====== Let postfix only accept mails for addresses in Exchange ======
===== Problem =====
* I use postfix as a backup for my Exchange. I want postfix to only accept mail for recipients which exist in Exchange.
===== Requirements =====
* I assume you followed my first tutorial [[tutorial:mail:postfixredir|here]]
* Existing postfix installation (mine is on debian)
* Existing Exchange (2010 or 2013) installation
----
===== Step 1 =====
* Create the following PowerShell script on your Exchange server:
*
$ExcludeUsers = @("Administrator", "user1")
Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010
# Get all valid recipients, excludes DiscoverySearchMailbox and every user alias included in ExcludeUsers
$ValidRecipients = Get-Mailbox | where {$_.Alias -NotLike "DiscoverySearchMailbox*"} | where {$_.Alias -NotIn $ExcludeUsers}
foreach ($Address in $ValidRecipients.EmailAddresses)
{[string]::Format("{0}`tOK", $Address.AddressString)}
* Run the script and save the output to a file like this: ''%%./script.ps > output.txt%%''
----
===== Step 2 =====
* Connect to yout server running postfix
* Upload the scriptoutput to /etc/postfix/relay_recipients
* Add the following lines to your /etc/postfix/main.cf:
*
relay_recipient_maps = hash:/etc/postfix/relay_recipients
show_user_unknown_table_name = no
* Reload or restart postfix
----
===== Step 3+ =====
* If your addresses change (added new or removed some) you have to repeat step 1 and 2