• Bewerte uns auf OMR Reviews: Klick

  • 25Reports geht live, schaut es euch an: Klick

  • Achtet bitte in den Beiträgen darauf, dass ihr keine Informationen teilt, die der DSGVO unterliegen können. Verpixelt bitte die entsprechenden Stellen in Screenshots, postet hier auf keinen Fall Messagetracks ohne Rücksprache und auch in den Log Files können persönliche oder sensible Daten enthalten sein.

    Macht uns auch bitte per PN darauf aufmerksam wenn ihr etwas seht. Schreibt mich (@sören) einfach direkt an. 

  • Zertifikate vom Deutschen Forschungsnetz beziehen (Harica CA)? Klick

Gelöst Unable to relay bei 365 Shared Mailbox

itdept

Member
Registriert
22 Mai 2024
Beiträge
10
Reaktionspunkte
8
Hallo Forum,

ich grübel gerade über ein Problem:

Unser NSP läuft onPrem und nimmt von unserem DNS aus die Mails direkt an.
Die Mails werden dann an 365 weitergeschoben. User werden mittels Microsoft Tool von unserer AD nach 365 gesynct.

Eine Shared Mailbox existiert nur in 365 und kann von den Usern benutzt werden.
Diese Shared Mailbox existiert nicht in der AD.

Und genau hier vermute ich den Fehler, dass der NSP eine Mail an diese Shared Mailbox wie folgt ablehnt:

Code:
<sharedbox@mydomain.de>: host http://mx01.mydomain.de[http://111.111.111.111]
said: 550 5.4.4 Unable to relay (in reply to RCPT TO command)

Im NSP ist *.mydomain.de entsprechend konfiguriert.

Hat jemand eine Idee?
 
Hat jemand eine Idee?
der NoSpamProxy macht ja per default eine Empänger Validierung anhand der Daten aus dem AD, ist das Postfach nicht bekannt, wird die Mail abgewiesen...

schnellster Weg: das Postfach von Hand im NSP anlegen:

1777443476610.png
 
Vielen Dank für die schnelle Hilfe!
Das funktioniert soweit.

Es reicht auch einen entsprechenden AD User mit der Mailadresse anzulegen und ihn zu deaktiveren.
Über den stündlichen Sync mit NSP kann gegen den User Authentifiziert werden.
 
Guten Morgen zusammen,

ähnliches Problem (SharedMailbox -> Verteiler) und ich habe mir mit diesem PS-Skript beholfen, die "Cloud-Only"-Pendants der AD bekannt zu machen. Zuvor dem NSP als lokale User, jedoch wollte ich die Indentitäten nach Möglichkeit im AD haben, anstatt als lokale User in NSP.

Für deinen Fall kannst du das Grundgerüst kopieren, jedoch die Befehle von Verteiler auf Mailbox umbauen.
Tricky wird es meist mit Aliasadressen (meherere Proxyadressen) und der (nervigen) EmailAddressPolicyEnabled sowie der Verzögerung beim schreiben gegen die AD - daher die Start-Sleeps.

Nutzung auf eigene Gefahr:cool:

C#:
$ClientID = "<ClientID>"
$CertificateThumbprint = "<Thumbprint>"
$Organization = "<domain>.onmicrosoft.com"

$Path2Log = "C:\<Logpath>\$(Get-Date -Format yyyyMMdd_HHmm).txt"
$Path2ErrorLog = "C:\<Logpath>\$(Get-date -Format yyyyMMddHHmm)_error.log"
$AD_OU_Path = "<domain>.local/Exchange/EXO-Verteiler"

$domain = "domain.tld"

function Logit {
    param (
            [string]$LogMessage
    )

    $LogPath = $Path2Log

    if(!(Test-Path -Path $LogPath))
    {
        New-Item $Path2Log
    }

    $LogMessage | Out-File $LogPath -Encoding utf8 -Append
}

Connect-ExchangeOnline -CertificateThumbPrint $CertificateThumbprint  -Organization $Organization -AppId $ClientID -ShowBanner:$false

$Cloud_DG = Get-DistributionGroup -ResultSize unlimited -WarningAction Ignore  | Where-Object {$_.RequireSenderAuthenticationEnabled -eq $false -and $_.PrimarySmtpAddress -notlike "*@*onmicrosoft.com" -and $_.IsDirSynced -eq $false}

Disconnect-ExchangeOnline -Confirm:$false
Add-PSSnapin *Exchange*

$DC = (Get-ADDomainController).Hostname
$EX_OU = Get-DistributionGroup -OrganizationalUnit $AD_OU_Path

#Abgleich Erstellung und Löschung
Compare-Object -ReferenceObject $Cloud_DG -DifferenceObject $EX_OU -Property Name -IncludeEqual | ForEach-Object {
    
    $entry = $_.Name

    #Löschung von Onpremises Shadow AD Objects
    if($_.SideIndicator -eq "=>")
    {
        Microsoft.Exchange.Management.PowerShell.RecipientManagement\Remove-DistributionGroup -Identity $entry -Confirm:$false
        Logit -LogMessage "Lösche den folgenden Verteiler: $entry"
    }   
    
    #Anlage von Onpremises Shadow AD Objects
    if($_.SideIndicator -eq "<=")
    {
        $Anlage = $Cloud_DG | Where-Object {$_.Name -like $entry}
 
        Microsoft.Exchange.Management.PowerShell.RecipientManagement\New-DistributionGroup `
            -Name $Anlage.Name `
            -Alias $Anlage.Alias `
            -RequireSenderAuthenticationEnabled $false `
            -Type Distribution `
            -PrimarySmtpAddress $Anlage.PrimarySmtpAddress `
            -OrganizationalUnit $AD_OU_Path `
            -DisplayName $Anlage.DisplayName `
            -DomainController $DC | Out-Null
      
        Start-Sleep -Seconds 5
        Microsoft.Exchange.Management.PowerShell.RecipientManagement\Set-DistributionGroup -Identity $Anlage.PrimarySmtpAddress -EmailAddressPolicyEnabled $false -DomainController $DC

        Start-Sleep -Seconds 5
        $ProxyAddress = $Anlage.EmailAddresses | Where-Object {$_ -like "*@$domain"}
        Microsoft.Exchange.Management.PowerShell.RecipientManagement\Set-DistributionGroup -Identity $Anlage.PrimarySmtpAddress -EmailAddresses $ProxyAddress -DomainController $DC
        
        Logit -LogMessage "Lege den folgenden Verteiler an: $entry"
    }
    
    #Anpassung ProxyAdresses von Onpremises Shadow AD Objects
    if($_.SideIndicator -eq "==")
    {   
        if((Microsoft.Exchange.Management.PowerShell.RecipientManagement\Get-DistributionGroup -Identity $entry).EmailAddressPolicyEnabled)
        {
            Microsoft.Exchange.Management.PowerShell.RecipientManagement\Set-DistributionGroup -Identity $entry -EmailAddressPolicyEnabled $false
            Start-Sleep -Seconds 5
        }

        $Cloud_ProxyAddressString = ($Cloud_DG | Where-Object {$_.Name -like $entry}).EmailAddresses | Where-Object {$_ -like "*@$domain"}
        $Onpem_ProxyAddressString = (Microsoft.Exchange.Management.PowerShell.RecipientManagement\Get-DistributionGroup -Identity $entry).EmailAddresses.ProxyAddressString

        $compA = ($Cloud_ProxyAddressString | Sort-Object) -join ','
        $compB = ($Onpem_ProxyAddressString | Sort-Object) -join ','

        if($compA -ne $compB)
        {
            Microsoft.Exchange.Management.PowerShell.RecipientManagement\Set-DistributionGroup -Identity $_.Name -EmailAddresses $Cloud_ProxyAddressString
            Logit -LogMessage "Aktualisiere die ProxyAdressen für den folgenden Verteiler: $entry"
        }
    }
}

if($Error)
{
    $Error | Out-File -FilePath $Path2ErrorLog
}

LG
Fabian
 
Zurück
Oben