This document was written using Windows Server 2008 R2 running IIS version 7.5 and ASP.NET scripting technology for sending email. If you require SSL/TLS, you will need to configure those elements separately.
Before you get going, you'll need to set up IIS in order to support SendGrid integration. This tutorial assumes that you have set up a working site and that the root directory tests as valid.
- Open IIS 7.0/7.5 Manager in Windows.
- Click on your site (see image below, noting that your configuration will look different), and the main configuration options page will be displayed to the right.
- Double-click SMTP E-mail under the ASP.NET section.
- In the email address field: type the email address that will be the "sender".
- Select Deliver e-mail to SMTP server.
- In the SMTP Server field: type localhost.
- In the Port field: type 25.
- In Authentication Settings, select Not required.
- Click Apply.
If you want to configure additional security to the localhost IIS 6.0 server you would set it here and match the same authentication in the IIS 6.0 GUI.
- Go to Start > All Programs > Administrative Tools > Server Manager
- Click Features in the navigation pane.
- Click Add Features to start the wizard.
- Scroll down the list to the SMTP Server, and check the box. The Required Role Services dialog will appear, listing all of the dependencies that the SMTP server depends on to operate. Click Add Require Role Services.
- Click Next twice.
- Review the list of available IIS Role Services and check any that you would like to add.
- Click Next then click Install.
Once the SMTP Server service is installed, the IIS 6.0 virtual server technology is activated, and the IIS 6.0 administration snap-in will now be active.
- Go to Start > All Programs > Administrative Tools > IIS 6.0 Manager.
- Right click on the SMTP Virtual Server #1 and select Properties.
- Click the box to enable logging section to assist you in configuring the server.
- Select Properties and check the box to activate Use Local Time For File Naming And Rollover option.
- Select Advanced and check the following items: Date, Time, Client IP Address, User Name, Service Name, Server Name, Server IP Address, Server Port, Method, Protocol Status, Bytes Sent, Protocol Version, and Host.
- Click OK.
- Click on the Access tab the select Relay in the Relay Restrictions section.
- Click Add, enter 127.0.0.1, and click OK. The IP appears in the list with Access Granted.
- Click OK Only The List Below and enter 127.0.0.1 in the IP address field.
- Click OK to return to the Access tab as shown in the previous screenshots.
- Select Delivery and click Outbound Security.
- Select Basic Authentication and enter
apikeyas your username and the password will be your SendGrid API Key.
- Click OK.
- Click Advanced.
- In the Smart host field: enter smtp.sendgrid.net
- Click on OK twice and you can close the IIS 6.0 admin MMC
At this point you will need to configure an SMTP domain that relays messages to SendGrid. Please follow Microsoft's instructions.
First, let's test using Telnet. Open up a telnet client within Windows. You can do that in the Command Prompt by entering the following:
telnet localhost 25
Now, with telnet running, enter the following commands just as you see them, pressing ENTER for each new line (if configured correctly, the server won't do anything until you enter the period):
MAIL FROM: firstname.lastname@example.org
RCPT TO: email@example.com
This is a test email for SendGrid operations.
EHLO command with your domain inserted tells the mail server which domain it will be sending from. The
MAIL FROM: command is a standard MIME entry for that inserts the email address of the sender. The
RCPT TO: command tells the server to which address to send the message. The
DATA command tells the server that the next incoming information is the body of the message. Finally, after the data is entered, the period (.) tells the server you are done. When you press Enter, it will send the message. It's quite nice to have servers to handle all this mess, isn't it!
If these manually entered commands work, then you should have the following success code returned:
250....Queued mail for delivery
You can also test using the logging feature we had you activate earlier. You can view the logs by navigating to and opening the IIS 6.0 7.5 log files with a text editor. It will probably be under the C:\Windows\System32\LogFiles directory unless you changed the log file location during installation.
Notice, highlighted in blue below, that the server sent an email and that it went through various OutboundConnectionCommand and Outbound ConnectionResponse steps. These along with the information of the various stages of EHLO, AUTH, MAIL, RCPT, DATA, and quit that the email was sent successfully.
Finally, you can confirm that your configuration is working by logging into our site. Login into our web UI using your SendGrid credentials. On the main Dashboard tab you will see a list of messages that were recently sent through our service. This number should increment by one each time you either use telnet to send an email or you use an ASP.NET test script.