2010-06-07 46 views
6

estoy recibiendo este error cuando intento enviar a través del servidor localCDO.Message.1 error '80070005' Acceso denegado.

CDO.Message.1 error '80070005' 

Access is denied. 

/mail.asp, line xxx 

Aquí está el código que estoy utilizando

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 

Parece que se trata de un error de permiso en el issur doesn' t tiene permiso de escritura para escribir en la carpeta mailroot/pickup.

Pero lo hemos comprobado y la cuenta de servicios que este sitio está utilizando parece tener los derechos.

Pregunta ¿este error siempre es un error de permiso de archivo?

Pregunta cómo saber/establecer la ubicación que utiliza CDO? Entonces, podemos confirmar los permisos

¿Qué más debería ver para solucionar esto?

Respuesta

5

utilizar la propiedad .configuration que permite la autenticación y otra sintonía fina ..

ejemplos en: http://www.paulsadowski.com/wsh/cdo.htm

actualización

La propiedad .configuration permite configurar el directorio de recogida (como solicita)

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

gracias por esto, pero no estoy tratando de enviar el correo a un servidor remoto solo para que funcione en el cuadro local. – Pbearne

+0

@Pbearne, puede establecer el directorio de recogida a través de la propiedad '.configuration' (* answer * actualizado) –

+0

Gracias por el ejemplo de código adicional que funciona en el servidor de desarrollo Odio tener que poner rutas en el código. pero puedo vivir con eso – Pbearne

0

Estoy migrando algunos sitios asp clásicos antiguos a un servidor nuevo (Windows 2008R2) y tuve "exactamente" el mismo problema (al menos el mismo error y básicamente el mismo código). La solución presentada por 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" 

no funcionó para mí, todavía tenía el mismo error.

Después de buscar información me encontré con esta sugerencia:

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

(NO ajuste el smtpserverpickupdirectory)

ahora funciona bien.

Por cierto, si necesita configurar el servicio SMTP necesario en el servidor de Windows 2008 (IIS7), encontré this blog extremadamente útil.

ACTUALIZACIÓN:

Según microsoft sendusing = 1 utiliza el servidor SMTP y SendUsing 2 utiliza Outlook Express, he mirado en el servidor, y no parece ser OutlookExpress o correo instalado ventanas , todavía este ajuste funciona para mí. Si alguien pudiera explicar que tengo curiosidad por saberlo.

4

SI NO QUIERES CAMBIAR SU CÓDIGO

subvención IIS_IUSRS grupo acceso de escritura a c: \ inetpub \ Mailroot \ Pickup carpeta o lo que es su directorio de recogida.

Debe ser IIS_IUSRS Grupo, no el usuario IUSR (lo tienes mispelled probablemente).

que estaba recibiendo este error después de realizar los pasos especificados en la opción 3 en blog.msdn.com

No he tenido que cambiar el código ASP. Tu código funciona bien en mi servidor.

+2

Esta debería ser la respuesta aceptada ya que esta es la causa del mensaje 'Acceso denegado'. El grupo 'IIS_IUSRS' contiene en las cuentas' ApplicationPoolIdentity' para cada sitio en el servidor, por lo que si configura esto a nivel de servidor, este enfoque funciona muy bien. Solo recuerde que su carpeta de recolección deberá otorgar el permiso 'IIS_IUSRS' * al menos *' modify' o continuará obteniendo el error. – Lankymart

+0

Sin embargo, el artículo vinculado es para otro error ('Error: CDO.Message.1 (0x80040220) El valor de configuración de" Enviar Uso "no es válido en IIS 7.5') y en este caso agregar permisos a la' metabase de IIS' ** nada ** el problema es los permisos de la carpeta para la carpeta de recolección. – Lankymart

Cuestiones relacionadas