2010-06-07 142 views
6

当我尝试通过本地服务器CDO.Message.1错误'80070005'访问被拒绝。

CDO.Message.1 error '80070005' 

Access is denied. 

/mail.asp, line xxx 

这里给我收到此错误是我使用

MailBodyText = "TEST" 

    Set objNewMail = CreateObject("CDO.Message") 
    objNewMail.To = sSendTo 
    objNewMail.From = "[email protected]" 
    objNewMail.Cc = "[email protected]" 
    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权限错误没有按”没有写入权限写入邮件根目录/拾取文件夹。

但我们已检查并确认此网站正在使用的服务帐户似乎有权利。

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

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

还有什么应该看看解决这个问题?

回答

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 
+0

谢谢你,但我不想发送邮件到远程服务器只是让它在本地盒子上工作。 – Pbearne 2010-06-07 19:44:28

+0

@Pbearne,你可以通过'.configuration'属性设置拾取目录(*更新的答案*) – 2010-06-07 21:04:58

+0

感谢您的额外代码示例,它在dev服务器上工作 我讨厌把路径放到代码中。但我可以忍受它 – Pbearne 2010-06-09 13:03:17

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非常有帮助。

UPDATE:

根据microsoft sendusing = 1使用SMTP服务器和sendusing 2使用Outlook Express中,我看在服务器上,而且似乎没有要在OutlookExpress或Windows Mail的安装,这个设置仍然适用于我。如果有人能够解释我很想知道。

4

如果你不想更改代码

格兰特IIS_IUSRS组写访问C:\的Inetpub \ mailroot \皮卡文件夹或什么是你的皮卡目录。

它必须是IIS_IUSRS组,而不是IUSR用户(你有它可能拼写错误)。

我在blog.msdn.com

执行在选项3中规定的步骤,我没有改变ASP代码后收到此错误。您的代码在我的服务器上正常工作。

+2

这应该是被接受的答案,因为这是“拒绝访问”消息的原因。 “IIS_IUSRS”组在服务器上的每个站点的ApplicationPoolIdentity帐户中包含,因此如果您在服务器级配置此方法,则此方法效果很好。只要记住,您的皮卡文件夹将需要'IIS_IUSRS' *至少*'修改'权限,否则您将继续得到错误。 – Lankymart 2014-07-18 09:02:19

+0

然而,链接的文章是用于另一个错误(错误:CDO.Message.1(0x80040220)“SendUsing”配置值在IIS 7.5上无效),在这种情况下,向IIS元数据库添加权限将会执行**没有**问题是拾取文件夹的文件夹权限。 – Lankymart 2014-07-18 09:21:50

相关问题