Do you want to setup Exchange Server in your house and run your own email server? Let me guess you do not have a static IP address and do not want to get one. Well below are my steps on how to set this up.
What you will need:
- A Windows domain and an Exchange Server setup.
- Dynamic DNS service such as no-ip.com or dyndns.com.
- A purchased domain name from somewhere like voxdomains or any other service. Just make sure you have full management of the DNS.
Go ahead and setup your Domain controller with AD and your Exchange server. I assume you have some working knowledge of domains and networking so I am not going to cover how to do this in this article.
Once you have your Exchange up and ready to go. Go download the no-ip client or update client from the dynamic DNS service you signed up for. This client runs in your system tray and will update your no-ip address with the public IP whenever it changes. Now install the update client on your Exchange box.
Configure your router/firewall to forward incoming traffic on port 25 (my port is different as my ISP blocks incoming port 25. I will explain further below.) to your Exchange server. Configure your router/firewall to allow outgoing traffic on port 25. (my port is different as my ISP blocks outgoing port 25. I will explain further below.)
Go to your domain host and add the address your dynamic DNS service gave you. For example your domain MX record points to test.no-ip.com. Now you should be able to receive and send mail.
Ok. above I mentioned my setup is a little bit different. This is because my ISP (Comcast) blocks outgoing and incoming SMTP traffic on port 25. This is a tactic by them to combat SPAM. They do however allow SMTP traffic in and out on port 587. Below I explain how to get around this.
HOW TO GET EXCHANGE EMAIL TO SEND OUT THROUGH COMCAST:
If you are running Exchange at home or on a comcast residential account you then know you can’t send email on the default port 25. Here are steps to setup a send connector so you can send mail from exchange 2007 using comcast smart host.
First thing is gather your comcast account info.
Setup your send connector in Exchange 2007.
Follow these steps to setup the send connector:
- Go to ESM>>Organization Configuration>>Hub Transport
- Select “Send Connectors” tab
- Right click and choose new send connector
- Name it and set intended use to “Internet” click next
- add new “Address space” put a * in the address and select “include all subdomains” click next
- Select “Route mail through the following smart hosts:”
- Click add and select FQDN type in smtp.comcast.net click ok and then next
- Choose “Basic Authentication” put the username and password of your comcast account click next
- Make sure your exchange server is listed here as the source server
Now comcast does not allow mail to go through port 25. You can verify this by doing a telnet to smtp.comcast.net “telnet smtp.comcast.net 25:. It will fail. They only allow this on port 587. We need to change the send connector to send mail on port 587.
Follow these steps to change the port:
- Open up Exchange power shell:
- Run Get-SendConnector (This will show you the names of your send connectors. You should only have one at this point.)
- Run Get-SendConnector | fl port (This will show you the port is set to 25 right now)
- Run Set-SendConnector -Identity “NAMEOFCURRENTSENDCONNECTOR” -Port 587 (This will change the port your send connector uses to port 587.)
- Run Get-SendConnector | fl (Do this to verify your send connector is now using port 587 instead of port 25.)
Now go ahead and send a test email to an external domain such as yahoo.com or gmail.com.
HOW TO GET EXCHANGE EMAIL TO COME IN THROUGH COMCAST:
So mail would not come in. I figured out that Comcast was blocking incoming SMTP traffic on port 25 using http://www.mxtoolbox.com/. I ran their SMTP diagnostic on my domain. I then tried to telnet to my server on port 25 from an outside network. This failed also.
I searched for a way to somehow get my Exchange or router or some way to get SMTP traffic to come in on a different port. I figured out the only way to do this was to use a mail-relay/SMTP port redirect service.
I looked for a free one. I had no luck finding a free mail-relay service. I went with a mail-relay/SMTP port redirect service from dyndns.com. It was the best price I saw and came with several features others did not offer. It came with SPAM/virus filtering, and this was a biggie for me no daily relay limit. The other services I found had a limit on how many emails they would relay per day for a set monthly price.
The service at dyndns.com also holds and stores your mail to be sent later. So if your mail server goes down for some reason you will not lose mail. The way it works is you tell their service where to send the mail. Give them your no-ip or dynamic DNS address. Tell their service what port to redirect mail to on your mail server. Then you add their MX records to your domain. Now when mail is sent to your domain it flows through on port 25 to their server. The mail is then resent to your domain on a different port. In my case mail goes to their server on port 25 and is resent to my mail server on port 587.
After completing the above steps I have no issues mail comes in and mail goes out.
So that is how you setup a mail server on dynamic IP and get mail flowing if your ISP is blocking standard SMTP ports.
For those of you out there that dont want to purchase Exchange but want to run your own mail server check out hMailServer at http://www.hmailserver.com/. It is a free mail server that can run on windows.