I contatti di posta di Exchange 2010 vengono assegnati indirizzi SMTP interni dal criterio del destinatario

Questo ambiente è stato aggiornato da Exchange 2007 a un nuovo server Exchange 2010. Ci sono diverse migliaia di contatti di posta elettronica che risiedono nell'ambito dell'UU Federation_Contacts. Nella scheda Indirizzi e-mail per each contatto di posta, il loro indirizzo SMTP corretto (ad esempio john@othercompany.com) viene assegnato come primario. Ma in qualche modo ciascuno ha ricevuto indirizzi di posta elettronica interni anche presso la nostra società (john@ourcompany.com e john@ourcompany.local)

Ora il problema è che le e-mail a questi contatti rimbalzano di nuovo con # 550 5.1.1 RESOLVER.ADR.ExRecipNotFound; non trovato

Dobbiamo andare ed eliminare gli indirizzi SMTP interni che sono stati creati erroneamente e deselect gli indirizzi di aggiornamento automatici in base all'impostazione dei criteri dei destinatari.

La mia domanda è: 1-Come facciamo a eliminare gli indirizzi di posta elettronica interni per questi contatti di posta, facendo attenzione a non pregiudicare i nostri utenti interni?

2-Come interrompere la conversione di Exchange (più precisamente immagino, la politica del destinatario) di creare gli indirizzi interni per nuovi contatti di posta?

4 Solutions collect form web for “I contatti di posta di Exchange 2010 vengono assegnati indirizzi SMTP interni dal criterio del destinatario”

Ho usato Powershell per disabilitare l'aggiornamento dell'indirizzo email dalla politica del destinatario:

Get-MailContact -OrganizationalUnit "domain.local/OU" | set-mailcontact -emailaddresspolicyenabled $false 

Quindi ho usato ADModify.net per togliere gli indirizzi SMTP secondari assegnati ai contatti. Ha funzionato come un fascino.

Aveva lo stesso problema (un po 'tardi) quindi ho preso il tuo "script" e l'ho aggiornato. È necessario distriggersre la politica di indirizzo email da applicare ai contatti in Exchange e risolve parzialmente il problema.

3) Selezionare Trasporto Hub e passare alla scheda Criteri Indirizzo Indirizzo 4) Modificare ciascuno lasciando gli Users with external e-mail addresses senza casella di controllo e Contacts with external e-mail addresses .

immettere qui la descrizione dell'immagine

Risolverà parzialmente il problema perché la politica predefinita non può essere disabilitata per cui ho finito di avere gli indirizzi email di domain.local per impostazione predefinita aggiunti a nuovi contatti comunque.

Quindi ho scritto uno script basato su quello fornito in questione (quello in questione aveva alcuni bug in cui sono stati assegnati più indirizzi dello stesso dominio e stava facendo un sacco di rumore) che rimuoverà tutti gli indirizzi email che non sono esterni e verranno inoltre assicurati che i vecchi contatti non ottengano le politiche riapplicate.

 #### # Input variables #### $domains = @("*@domain.com","*@domain.pl","*@evotec.pl", "*@domain.local") $ou = "evotec.local" #### # Removing internal domains from contacts #### $domains | foreach { $domain = $_; write-host "Preparing for removal of addresses with domain name:" $domain $Contacts = Get-MailContact -OrganizationalUnit $ou -Filter { EmailAddresses -like $domain -and name -notlike "ExchangeUM*" } -ResultSize unlimited -IgnoreDefaultScope $Contacts | foreach { $contact = $_; $email = $contact.emailaddresses; #write-host "1. " $contact #write-host "2. " $contact.name #write-host "3. " $email #write-host "4. " $contact.identity $email | foreach { if ($_.smtpaddress -like $domain) { $address = $_.smtpaddress; write-host "[*] Removing address" $address "from Contact" $contact.name; Set-Mailcontact -Identity $contact.identity -EmailAddresses @{Remove=$address}; } } } } #### # Setting up email address policy to disabled for all contacts #### write-host "Preparing all contacts for disabling email address policy" $Contacts = Get-MailContact -OrganizationalUnit $ou -Filter { EmailAddresses -like $domain -and name -notlike "ExchangeUM*" } -ResultSize unlimited -IgnoreDefaultScope | Where {$_.EmailAddressPolicyEnabled -eq $true} $Contacts | foreach { $contact = $_; write-host "[*] Setting up email address policy to disabled for" $contact.name $contact | set-mailcontact -emailaddresspolicyenabled $false } 

Il passaggio finale consiste nel configurarlo come Task Scheduler poiché i nuovi contatti continueranno a get il criterio di default non modificabile (in modo supportto). Questa configuration nel server di Exchange funziona bene. Assicurarsi di eseguirlo con autorizzazioni corrette.

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\ExchangeScript\RemoveLGBSEmailsFromContacts.ps1"

Prima di cercare di identificare la politica che potrebbe essere quella di campionare questi indirizzi. È ansible ottimizzare l'applicazione per essere applicato solo alle cassette postali o ai contatti …

… o creare un nuovo per i soli contatti.

Per ripulire il potere di confusione c'è per te se hai bisogno di fare cambiamenti di massa.

Get-MailContact | Set-MailContact -EmailAddressPolicyEnabled: $ falso

Questo dovrebbe fare il trucco per tutti i contatti di posta!

Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.