10
votes

I'm trying to get an email sent using ASP classic, and am having trouble with SMTP configuration.

The error:

CDO.Message.1 error '80040220' The "SendUsing" configuration value is invalid.

The Code(for the email itself):

Set objMsg = Server.CreateObject("CDO.Message")  
objMsg.From     = "[email protected]"  
objMsg.To       = "[email protected]"  
objMsg.Subject  = "Procurement Ally Update"  
objMsg.TextBody = strBody 

The Code I tried to configure with (pt 1):

sch = "http://schemas.microsoft.com/cdo/configuration/"  
Set cdoConfig = CreateObject("CDO.Configuration")   
    With cdoConfig.Fields   
        .Item(sch & "smtpserver") = "127.0.0.1"   
        .update   
    End With   

That didn't work, so I tried:

objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"  
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  
objMsg.Configuration.Fields.Update 

That also didn't work.

(Yes, I didn't show it, but at the end there's a call to objMsg.Send)

As far as I can tell, the local boxes SMTP service is running and ready to do its duty.

Can anyone help?

2
If anyone found this page wondering how to send an email from Excel using CDO, I threw together a Google Doc How to Send Email from Excel using Gmail with code on GitHub gistJake Berger

2 Answers

22
votes

If you are specifying an smptserver, be sure to set your 'sendusing' field to 2 (or cdoSendUsingPort) as well:

objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objMsg.Configuration.Fields.Update 
1
votes

As the SMTP service is on the localhost it makes more sense to send to pickup directory using SendUsingPickup (1). This will be more efficient than sending over network to port 25.

objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
objMsg.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\Inetpub\mailroot\Pickup"
objMsg.Configuration.Fields.Update