{{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