ASP foutmelding: cdo.message.1 error 80040220 The "SendUsing" configuration value is invalid
Sinds kort draaien onze Windows 2003 webservers (IIS 6.0) met AppPools (application pools) onder een eigen IUSR-user identity. Werkt prima! :) Echter, soms kom je tijdens het opzetten en testen van een dergelijke set-up nog wel eens een foutmelding tegen.
Bijvoorbeeld bij het versturen van een e-mail via ASP (CDOSYS):
The "SendUsing" configuration value is invalid.
Enig zoekwerk bracht mij bij de website realityme.net, waarop uitgelegd staat dat deze foutmelding veroorzaakt wordt omdat de IIS_WPG group geen leesrechten heeft op de SMTP-service van IIS.
Oplossing
Stel leesrechten in op de service SMTPSVC/1 (Computer Management -> Services and Applications -> Internet Information Services (IIS) Manager -> Default SMTP Virtual Server -> Properties -> Security -> Add) én op de SmtpSvc node van de Metabase (Metabase Explorer -> SmtpSvc Permissons -> Add). Zoals aangegeven in onderstaande afbeelding:

Werk je liever via de commandline, download dan MetaAcl.vbs van Microsoft, of hier (als tekst, sla op als .vbs). De aanroep via cscript.exe is:
cscript.exe Metaacl.vbs IIS://localhost/SMTPSVC/1 IIS_WPG RUE
The “SendUsing” configuration value is invalid: mogelijkheid #2
verplicht e-mail verzenden via SMTP
Een tweede mogelijke oorzaak van deze foutmelding is dat de webserver geen lokale SMTP-service biedt, en dat er gebruik gemaakt moet worden van een externe SMTP-server. CDOs standaard instelling is om de lokale pick-up directory van IIS SMTPsvc (C:\Inetpub\mailroot\Pickup) te gebruiken, door middel van het property cdoSendUsingPort = 1. In dat kan in dit geval niet.
Het ASP-script moet aangepast worden om van de externe server gebruik te maken, met CDO Configuration.
Voorbeeld ASP script: SMTP-server + TLS + SMTP authenticatie
[...]
' http://msdn.microsoft.com/en-us/library/ms526318%28EXCHG.10%29.aspx
Const cdoSendUsingMethod = _
"http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort = 2
Const cdoSMTPServer = _
"http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort = _
"http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout = _
"http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate = _
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic = 1
Const cdoSendUserName = _
"http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword = _
"http://schemas.microsoft.com/cdo/configuration/sendpassword"
'Use SSL for the connection (False or True)
Const cdoSendTLS = _
"http://schemas.microsoft.com/cdo/configuration/smtpusessl"
Set myMail = CreateObject("CDO.Message")
Set myMail.Configuration = CreateObject("CDO.Configuration")
Set Fields = myMail.Configuration.Fields
' SMTP-configuratie
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = "smtp.vevida.com"
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = "inlognaam/e-mailadres verzender"
.Item(cdoSendPassword) = "wachtwoord verzender"
.Item(cdoSendTLS) = true
.Update
End With
[...]
Views: 610

