Applies to: Exchange Online

This cmdlet is available only in the cloud-based service.

Use the Set-PerimeterConfig cmdlet to modify the list of gateway server IP addresses that have been added to the cloud-based safelists.

Set-PerimeterConfig [-Identity <OrganizationIdParameter>] [-Confirm [<SwitchParameter>]] [-GatewayIPAddresses <MultiValuedProperty>] [-WhatIf [<SwitchParameter>]]

This example shows how to add an IP address to cloud-based safelists where the gateway server relays email to the cloud-based service from internal email servers only.

Set-PerimeterConfig -GatewayIPAddresses

If you have an on-premises messaging system, you can add the IP addresses of your gateway servers to cloud-based safelists. Safelists are also known as whitelists. You add IP addresses to cloud-based safelists to make sure that e-mail that originates in your on-premises messaging system isn't treated as spam.


Parameter Required Type Description




The Confirm switch specifies whether to show or hide the confirmation prompt. How this switch affects the cmdlet depends on if the cmdlet requires confirmation before proceeding.

  • Destructive cmdlets (for example, Remove-* cmdlets) have a built-in pause that forces you to acknowledge the command before proceeding. For these cmdlets, you can skip the confirmation prompt by using this exact syntax: -Confirm:$false.

  • Most other cmdlets (for example, New-* and Set-* cmdlets) don't have a built-in pause. For these cmdlets, specifying the Confirm switch without a value introduces a pause that forces you acknowledge the command before proceeding.




Use the GatewayIPAddresses parameter to create or modify a list of gateway server IP addresses to add to IP safelists. IP addresses are specified in IPv4 format, for example, If you list more than one IP address, separate each entry with a comma.




This parameter is reserved for internal Microsoft use.




The WhatIf switch simulates the actions of the command. You can use this switch to view the changes that would occur without actually applying those changes. You don't need to specify a value with this switch.

To see the input types that this cmdlet accepts, see Cmdlet Input and Output Types. If the Input Type field for a cmdlet is blank, the cmdlet doesn’t accept input data.

To see the return types, which are also known as output types, that this cmdlet accepts, see Cmdlet Input and Output Types. If the Output Type field is blank, the cmdlet doesn’t return data.