CDO.Message.1错误'80070005'访问被拒绝。

时间:2010-06-07 12:15:05

标签: iis-7 asp-classic cdo.message

我尝试通过本地服务器发送时收到此错误

CDO.Message.1 error '80070005' 

Access is denied. 

/mail.asp, line xxx 

以下是我正在使用的代码

  MailBodyText = "TEST"

  Set objNewMail = CreateObject("CDO.Message")
  objNewMail.To =  sSendTo
  objNewMail.From = "webmaster@EXAMPLE.com"
  objNewMail.Cc = "webmaster@EXAMPLE.com"
  objNewMail.Subject =  "Information Request & Feedback"
  objNewMail.HTMLBody = "The following information was sent from " & sEmail & ":" & "<br>" & CHR(13) & MailBodyText & "<br>copies of this mail we sent to :"& sSendTo
  objNewMail.Send

  Set objNewMail = Nothing 

看起来它是ISSUR的权限错误,没有写入mailroot / pickup文件夹的写入权限。

但是我们已经检查过,并且该网站正在使用的服务帐户似乎拥有这些权利。

问题是这个错误总是文件权限错误吗?

问及如何知道/设置CDO使用的位置?所以我们可以确认权限

还有什么可以解决这个问题?

3 个答案:

答案 0 :(得分:5)

使用允许进行身份验证和其他微调的.configuration属性。

示例:http://www.paulsadowski.com/wsh/cdo.htm

<强> 更新

.configuration属性允许设置代答目录(,如您所请求

objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\inetpub\mailroot\pickup"
objNewMail.Configuration.Fields.Update
objNewMail.Send

答案 1 :(得分:4)

如果您不想改变您的代码

授予 IIS_IUSRS群组 c:\ inetpub \ mailroot \ Pickup 文件夹或您的取件目录的任何内容的写入权限。

它必须是 IIS_IUSRS群组,而不是 IUSR用户(你可能会误解它)。

我在blog.msdn.com

执行选项3中指定的步骤后收到此错误

我没有必要更改ASP代码。您的代码在我的服务器上正常运行。

答案 2 :(得分:0)

我正在将一些旧的经典asp站点迁移到一个新的(windows 2008R2)服务器,我有“完全”相同的问题(至少相同的错误和基本相同的代码)。 Gaby提出的解决方案:

objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
objNewMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "c:\inetpub\mailroot\pickup"

对我不起作用,我仍然有同样的错误。

经过一番搜索,我发现了这个建议:

myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
myMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost" 

(不要设置smtpserverpickupdirectory)

现在工作正常。

顺便说一下,如果您需要在Windows 2008服务器(IIS7)上设置必要的SMTP服务,我发现this blog非常有帮助。

<强>更新

根据microsoft sendusing = 1使用SMTP服务器,sendusing 2使用Outlook Express,我查看了服务器,似乎没有安装outlookexpress或windows邮件,仍然这个设置工作为了我。如果有人能解释我很想知道。