Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a website application that needs to send email via our Exchange servers. It sends email internally fine, but when sending to an external address I get the 550 5.7.1 unable to relay error. I followed this guide to create a connector to allow relay. Unfortunately, all office email was trying to use that connector and was not being routed correctly. It also appeared as though it opened it up for spammers to use. This is obviously unacceptable and a secure method is needed.

share|improve this question

3 Answers 3

up vote 0 down vote accepted

In your new scope did you only setup the IP of the web server as being able to send mail? If you limit the connector to only receive mail from your webserver that should take care of it.

Alternatively if you can setup your web app to use authenticated SMTP sessions you wouldn't need a new connector.

share|improve this answer
    
I was actually able to do both, looks like we were on the same track. Thanks tparker. –  isorfir Jun 18 '12 at 15:15

This problem occurs because by default the receive connector in Exchange Server 2007 does not have its default domain value set. This is unlike the behavior in Exchange 2000 or 2003 where it automatically appended the default domain to values that are submitted to MAIL FROM: or RCPT TO: in the message envelope by a sending server if no domain name is provided.

In Exchange Server 2007/ 2010, the default domain value on the receive connector is not set by default. If no domain name is specified in the MAIL FROM: or RCPT TO: commands, Exchange Server 2007 rejects the message with “501 5.1.7 Invalid Address” response.

To resolve this problem, perform the following steps to set the default domain value on the receive connector from Exchange Management Shell:

  1. Click Start, click All Programs, click Microsoft Exchange Server 2007 and click Exchange Management Shell.

  2. Run the following cmdlet to view the current setting of the default domain value on your receive connector:

    Get-ReceiveConnector -identity <YourReceiveConnectorName> |fl
    

    In the output, notice that the value of DefaultDomain is blank by default.

  3. Run the following cmdlet to set the default domain value:

    Set-ReceiveConnector -identity “<YourReceiveConnectorName>” -DefaultDomain “<YourSMTPDomainName>”
    

    For example, Set-ReceiveConnector -identity “Default EX2007MAIL” -DefaultDomain “contoso.com”

  4. Run Get-ReceiveConnector -identity <YourReceiveConnectorName> |fl cmdlet again and verify that the DefaultDomain has been set in the output.

share|improve this answer

Please follow this guide: http://technet.microsoft.com/en-us/library/bb232021.aspx

Make sure you restrict the connector to your internal ip addresses which are allowed to relay mails. (-RemoteIpRanges)

New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 10.2.3.4:25 -RemoteIpRanges 192.168.5.77

Get-ReceiveConnector "Anonymous Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.