Sending email using Amazon SES with Classic ASP

John Avis by | March 21, 2017 | Classic ASP Web Development

I recently needed to change a client's website to send emails using Amazon SES and encountered a few issues.
I recently needed to change a client's website to send emails using Amazon SES and encountered a few issues.

The client's code was using jMail COM component but I couldn't make this work, most likely because Amazon SES requires use of TLS and I could not find how to enable this in jMail, if it supports it at all.

So the solution was to change to CDOSYS, but this required some experimentation before it would work.

Some of the errors I received along the way were:

• The server rejected the sender address
• The server response was: 530 Authentication required
• 530 Must issue a STARTTLS command first

To use CDOSYS with Amazon SES you must specify a remote server, authenticate using basic authentication, use port 25, and use SSL (not TLS as I attempted).

This sample code worked for me. You will of course need to include your own Amazon SES SMTP login details, server name, and verified sender address.

Dim objMessage
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = "Your subject"
objMessage.From = "test@exampledomain.com"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "email-smtp.us-west-2.amazonaws.com" 'Change if using a different Amazon SES server
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Your Amazon SES SMTP username, usually starts with AKI..."
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Your Amazon SES SMTP password"
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
objMessage.Configuration.Fields.Update
objMessage.TextBody = "This is a test email"
objMessage.To = "success@simulator.amazonses.com"

On Error Resume Next
objMessage.Send

If Err.Number = 0 Then
Response.Write("OK")
Else
Response.Write("FAIL: " + Err.Description)
End If

Related Posts

Computers & Internet Web Development Website Hosting

500 Internal Server Error after migrating from IIS 7.5 to IIS 10

by John Avis | November 4, 2019

As support ends for Microsoft Windows Server 2008 I have recently gone through migrating some websites to a new server running Windows Server 2016 and IIS 10 but some of the websites did not work.


Jquery/Javascript Web Development

tagInput: A simple jQuery plugin for tag entry using Bootstrap 4

by John Avis | October 15, 2019

For a website project I needed a way to enter multiple tags. I just wanted something simple that I could easily modify to suit my own needs, so I wrote my own.


ASP.NET Web Forms Web Development

ASP.NET bug with RadioButton GroupName in Repeater

by John Avis | September 1, 2019

I rediscovered a bug in ASP.NET that affects RadioButtons inside repeaters. Here is my solution to the problem.

Comments

There are no comments yet. Be the first to leave a comment!

Leave a Comment

Tags

About me

...random postings about web development and programming, Internet, computers, electronics and automotive topics.

Subscribe

Get the latest posts delivered to your inbox.