Use of SES SMTP on Windows 2008

Oct 11, 2011 at 8:48 AM
Edited Oct 11, 2011 at 10:10 AM

I am running a Windows 2008 instance with Amazon and I am trying to integrate with the Amazon SES.

I have followed the instructions at http://computerone.co.nz/community/discussion/30/amazon-ses-integration-for-iis-smtp-server but....

I now have the service "Amazon SES SMTP Server" running.

In terms of the *.config file, I edited it to include my access and secret keys and the listening port is 26.  I wasn't sure about the Domain so I put the qualified machine name.

Using the scripts, I verified an E-Mail address that is valid in my local (not Amazon) network and using the scripts I have successfully sent an E-Mail from the Amazon instance to my E-Mail address and I have viewed it through my local (not Amazon) E-Mail client.

My running application has been configured to look to localhost port 26 as its SMTP settings and it has allegedly successfully sent an E-Mail but this has not been received.

Looking back at the advice given at http://computerone.co.nz/community/discussion/30/amazon-ses-integration-for-iis-smtp-server , one bit confuses me in that when I open IIS 7 Manager, I see no virtual SMTP server icon.  What I do see is an icon for SMTP email in the ASP.NET section and I have this configured with my validated E-Mail address, localhost and port 26.

Am I using the facility incorrectly or am I doing something wrong?

Hoping you can steer me in the right direction....

Could this error be related:

"Type        : Error
Source      : System
Method      : BeginRead
Date        : 10:23:02 AM
Time        : 10/11/2011
Error       : Unable to read data from the transport connection: An established connection was aborted by the software in your host machine.
Stack Trace : at System.Net.Sockets.NetworkStream.BeginRead(Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
   at SES_Server.SMTPSession.Recieve(Boolean isRetry)" ?

On thinking this through further, does my application need to use the access and secret keys (preferably not)?  If yes, are they to replace the username and password?  Also if yes, can I create different / unique keys for use with SES?

Coordinator
Oct 15, 2011 at 4:19 AM

Hi JustPassing.

We have actually setup the SES SMTP server on one of our servers also running Windows Server 2008 (R2), so it should work for you also.

As far as I can see you have done everything correctly and you have the service installed and running which is good. 

The "Domain" is just what you want the SMTP server to identify as (Google SMTP uses "mx.google.com") and in your case the machine name can be used.

The Virtual SMTP Server is part of II6 and can be installed on a server also running IIS7 (http://msdn.microsoft.com/en-us/library/8b83ac7t.aspx). However, this is not essential and you can use the SES SMTP service directly from your application (without IIS7 SMTP Email).

If you have configured both IIS7 SMTP Email and the SES SMTP service to listen on port 26, this may cause some sort of conflict.  From what you have told me, it may be best to just configure your application to use the SES Server directly using port 26 and server localhost.

 Here is an example of how I normally send emails to the server using C# (with the sender and recipient as the same address)

 

SmtpClient client = new SmtpClient();
client.Port = 26;
client.Host = "localhost";
	
MailMessage msg = new MailMessage();
msg.IsBodyHtml = true;
msg.To.Add("recipient@somedomain.com");
msg.From = new MailAddress("sender@somedomain.com");
msg.Body = "This is a test <strong>HTML</strong> message";
msg.Subject = "Test HTML Message";
	
client.Send(msg);

 

Please try this C# snippet(replace the sender and recipient with a single SES verified email address) as a test and tell me if it works for you.

Best Regards,

ComputerOne