"Could not access 'CDO.Message' Object - Part 2 The following suggestion comes from Duncan Smart. Although I haven't tested this, it looks interesting and may help someone out. One note, use at your own risk, as you will be modifing the IIS metabase. Cheers! Dave The following exerpt is from Duncan: Having had a look at http://systemwebmail.com/faq I thought you and your readers would find the following useful. Below is a script we use when deploying our application. When you don't set the SmtpServer property (or set it to null) then CDO tries to use a local IIS SMTP service if installed, and sends emails by simply creating a text file to c:\inetpub\mailroot\pickup\. The "Could not access CDO.Message object" error message is due to CDO not being able to read the IIS metabase to locate the PickupDirectory value - which is where it will write emails to. This script allows ASPNET to look up the PickupDirectory value from the IIS metabase. In addition you might need to grant ASPNET access to the pickup directory itself Inetpub\Mailroot\Pickup. For more control over MetaBase ACLs then use the MetaAcl.vbs utility: http://support.microsoft.com/support/kb/articles/Q267/9/04.ASP Hope you, or someone finds it useful! Duncan Smart InfoBasis [ vbscript ]
OPTION EXPLICIT Dim obj, acl, ace, aspNetAce Set obj = GetObject("IIS://localhost/SMTPSVC") Set acl = obj.AdminAcl Dim aspNetAcePresent : aspNetAcePresent = false ' Find "machine\ASPNET" access control entry For Each ace in acl.DiscretionaryACL If endsWith(ace.Trustee, "\ASPNET") Then aspNetAcePresent = True Exit For End If Next If Not aspNetAcePresent Then Set ace = CreateObject("AccessControlEntry") ace.Trustee = "ASPNET" ace.AccessMask = &H1 ' Read access acl.DiscretionaryACL.AddAce ace ' Save changes obj.AdminAcl = acl obj.SetInfo WScript.Echo "ASPNET account granted Read access to 'IIS://localhost/SMTPSVC'." Else WScript.Echo "ASPNET account already has access to 'IIS://localhost/SMTPSVC'." End If '========================================================== Function endsWith(str1, suffix) EndsWith = (Mid(str1,Len(str1)-Len(suffix)+1) = suffix) End Function
Copyright © 2004 Contact: Dave Wanta. aspNetEmail aspNetPOP3 aspNetMime