2010-06-07 24 views
6

Ich erhalte diese Störung, wenn ich versuche, über den lokalen Server verwende ichCDO.Message.1 Fehler '80070005' Zugriff verweigert.

CDO.Message.1 error '80070005' 

Access is denied. 

/mail.asp, line xxx 

Hier ist der Code zu senden

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 

Es sieht aus wie es auf der Issur ein Berechtigungsfehler wird ‚doesn t Schreibberechtigung zum Schreiben in den Ordner mailroot/pickup.

Aber wir haben das überprüft und das Dienstkonto, das diese Seite verwendet, scheint die Rechte zu haben.

Frage ist dieser Fehler immer eine Datei Erlaubnis Fehler?

Frage, wie Sie den Speicherort, den CDO verwendet, kennen/festlegen? So können wir die Erlaubnisse bestätigen

Was sonst sollte das beheben?

Antwort

5

Verwenden Sie die .configuration Eigenschaft, die für die Authentifizierung und andere Feinabstimmung ermöglicht ..

Beispiele an: http://www.paulsadowski.com/wsh/cdo.htm

Update

Die .configuration Eigenschaft des Pickup-Verzeichnis festlegen können (wie Sie anfordern)

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

danke dafür, aber ich versuche nicht, die Mail an einen Remote-Server zu senden, nur um es auf der lokalen Box zu arbeiten. – Pbearne

+0

@Pbearne, können Sie das Pickup-Verzeichnis über die '.configuration' -Eigenschaft setzen (* aktualisierte Antwort *) –

+0

Danke für den zusätzlichen Code Beispiel funktioniert es auf dem Dev-Server Ich hasse es, Pfade in Code zu setzen. aber ich kann damit leben – Pbearne

0

Ich migriere einige alte klassische asp Seiten zu einem neuen (Windows 2008R2) Server und ich hatte "genau" das gleiche Problem (naja zumindest der gleiche Fehler und im Grunde der gleiche Code). Die von Gaby präsentierte Lösung:

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" 

funktionierte nicht für mich, ich hatte immer noch den gleichen Fehler.

Nach einiger Suche fand ich diesen Vorschlag:

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

(nicht setzt die smtpserverpickupdirectory)

Jetzt funktioniert es gut.

Übrigens, wenn Sie den notwendigen SMTP-Dienst auf Windows 2008 Server (IIS7) einrichten müssen, fand ich this blog äußerst hilfreich.

UPDATE:

Nach microsoft Sendusing = 1 verwendet den SMTP-Server und Sendusing 2 Outlook Express verwendet, ich habe auf dem Server gesucht, und es scheint nicht zu Outlookexpress oder Windows Mail installiert zu sein , immer noch funktioniert diese Einstellung für mich. Wenn jemand erklären könnte, dass ich neugierig bin.

4

WENN SIE NICHT IHRE CODE GEÄNDERT

Grant-IIS_IUSRS Gruppe Schreibzugriff auf c: \ inetpub \ mailroot \ Pickup Ordner oder was auch immer Ihr Pickup Richt.

Es IIS_IUSRS Gruppe, nicht die IUSR Benutzer (du hast es falsch geschrieben wahrscheinlich) sein muss.

ich immer diese Fehlermeldung, nachdem ich habe nicht die ASP in Option 3 bei blog.msdn.com

angegebenen Schritte ausführen Code ändern müssen. Ihr Code funktioniert auf meinem Server einwandfrei.

+2

Dies sollte die akzeptierte Antwort sein, da dies die Ursache der 'Zugriff verweigert'-Nachricht ist. Die Gruppe "IIS_IUSRS" enthält die "ApplicationPoolIdentity" -Konten für jede Site auf dem Server. Wenn Sie diese Konfiguration auf Serverebene vornehmen, funktioniert dieser Ansatz sehr gut. Denken Sie daran, dass Ihr Abholordner "IIS_IUSRS' *" mindestens * 'modify' Erlaubnis geben muss, sonst erhalten Sie den Fehler. – Lankymart

+0

Der verknüpfte Artikel ist jedoch für einen anderen Fehler ("Fehler: CDO.Message.1 (0x80040220) Der Konfigurationswert" SendUsing "ist ungültig auf IIS 7.5") und in diesem Fall wird das Hinzufügen von Berechtigungen zu der "IIS-Metabasis" tun ** nichts ** Das Problem ist Ordner Berechtigungen für den Pickup-Ordner. – Lankymart

Verwandte Themen