When you try to send email out from exchange server VM at Azure, you will notice it will failed send email out. Because starting on November 15, 2017, outbound email messages that are sent directly to external domains (such as outlook.com and gmail.com) from a virtual machine (VM) are made available only to certain subscription types in Microsoft Azure. Outbound SMTP connections that use TCP port 25 were blocked. (Port 25 is primarily used for unauthenticated email delivery.), so you will notice the exchange server VM won’t send email out after you configure send connector.
Today, I am going to show you how to configure exchange server for sending email with Azure, this exchange server is a VM of Nested Hyper-V host at Azure, if you don’t know how to build a Nested Hyper-V host in Azure, you can reference our Building Real Word lab in Azure Volume 1 book from https://leanpub.com/buildingrealworldlabsinazurevolume1) , this is step by step to tell you how to build your own lab in Azure.
One of solutions is using SMTP relay service to send email from VM in Azure, there is a good news for Azure customers, Azure customers can unlock 25,000 free emails each month. Today, I am going to show you how to use SendGrid as SMTP relay to help you send email out successful. If you don’t know how to create a free SendGrid account, please check my previously blog.
- Login to exchange server VM.
-
Open Exchange admin center.
-
On the Exchange admin center page, select mail flow.
-
On the mail flow page, select connectors and then click +.
-
On the new send connector page, type send connector name and select Internet Type, click Next.
-
On the Network settings page, select Route mail through smart hosts and click +.
-
On the Add smart host page, enter smtp.sendgrid.net and click Save.
-
On the new send connector page, click Next.
-
On the Smart host authentication page, select Basic authentication and select Offer basic authentication only after staring TLS, and enter SendGrid user name and Password. Click Next.
-
On the Address space page, click +.
-
On the add domain page, enter * as Full Qualified Domain Name (FQDN), click Save.
-
On the new send connector page, select Scoped send connector, click Next.
-
On the Source server page, click +.
-
Select the exchange server and click add and then click OK.
-
On the new send connector page, click Finish.
-
Open Exchange Management Shell, use follow cmdlet to change the SendGrid send connector port from 25 to 2525.
Set-SendConnector -Identity "SendGrid" -port 2525
You will notice send email out without issues now.
Ps. Don’t forget add your external IP address to whitelisted at SendGrid IP Access Management.
Hope you enjoy this post.
Cary Sun
Twitter: @SifuSun
Thank you sir but just to be sure, till nowadays still the port 25 smtp blocked through Azure because i allowed it in NSG inbound and Outbound but still i can’t send to gmail .
i have exchange hosted on Azure Vm
Sendgrid is pointless for a productive Mail system, as all mails sent out become flagged as “The actual sender is differten than the normal sender” at the receiver. Sendgrid is more used for marketing mails or good for system mails.