2010-06-07 59 views
6

Tôi nhận được lỗi này khi tôi cố gắng để gửi qua các máy chủ địa phươngLỗi CDO.Message.1 '80070005' Quyền truy cập bị từ chối.

CDO.Message.1 error '80070005' 

Access is denied. 

/mail.asp, line xxx 

Dưới đây là đoạn code Tôi đang sử dụng

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 

Dường như nó được một lỗi cho phép tại ISSUR doesn' t có quyền ghi vào thư mục mailroot/pickup.

Nhưng chúng tôi đã kiểm tra điều đó và tài khoản dịch vụ mà trang web này đang sử dụng dường như có các quyền.

Câu hỏi là lỗi này luôn là lỗi cấp phép tệp?

Hỏi cách biết/đặt vị trí mà CDO đang sử dụng? Vì vậy, chúng tôi có thể xác nhận quyền truy cập

Điều gì khác nên xem xét để khắc phục sự cố này?

Trả lời

5

Sử dụng .configuration sở hữu cho phép để xác thực và tinh chỉnh khác ..

ví dụ tại địa chỉ: http://www.paulsadowski.com/wsh/cdo.htm

cập nhật

Thuộc tính .configuration cho phép để thiết lập thư mục đón khách (khi bạn yêu cầu)

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

cảm ơn vì điều này nhưng tôi không cố gắng gửi thư đến máy chủ từ xa để làm cho nó hoạt động trên hộp địa phương. – Pbearne

+0

@Pbearne, bạn có thể đặt thư mục đón qua thuộc tính '.configuration' (* câu trả lời được cập nhật *) –

+0

Cảm ơn ví dụ mã bổ sung nó hoạt động trên máy chủ dev Tôi ghét phải đặt đường dẫn vào mã. nhưng tôi có thể sống với nó – Pbearne

0

Tôi đang di chuyển một số trang web asp cổ điển cũ sang một máy chủ (windows 2008R2) mới và tôi đã "chính xác" cùng một vấn đề (cũng ít nhất là cùng một lỗi và về cơ bản cùng một mã). Giải pháp được trình bày bởi 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" 

không hoạt động đối với tôi, tôi vẫn gặp lỗi tương tự.

Sau khi một số tìm kiếm tôi tìm thấy đề nghị này:

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

(KHÔNG thiết lập smtpserverpickupdirectory)

Bây giờ nó hoạt động tốt.

Bằng cách này nếu bạn cần thiết lập dịch vụ SMTP cần thiết trên máy chủ Windows 2008 (IIS7), tôi thấy this blog cực kỳ hữu ích.

UPDATE:

Theo microsoft sendusing = 1 sử dụng máy chủ SMTP và sendusing 2 sử dụng Outlook Express, tôi đã nhìn trên máy chủ, và có vẻ như không được outlookexpress hoặc Windows Mail được cài đặt , thiết lập này vẫn hoạt động cho tôi. Nếu ai đó có thể giải thích rằng tôi tò mò muốn biết.

4

NẾU BẠN KHÔNG MUỐN THAY ĐỔI MÃ CỦA BẠN

Grant IIS_IUSRS nhóm ghi vào c: \ inetpub \ mailroot \ Pickup thư mục hoặc bất cứ điều gì là dir đón bạn.

Phải là IIS_IUSRS Nhóm, không phải là Người dùng IUSR (có thể bạn đã hiểu sai chính tả).

tôi đã nhận được lỗi này sau khi thực hiện các bước theo quy định tại tùy chọn 3 tại blog.msdn.com

Tôi không phải thay đổi mã ASP. Mã của bạn hoạt động tốt trên máy chủ của tôi.

+2

Đây phải là câu trả lời được chấp nhận vì đây là nguyên nhân của thông báo 'Truy cập bị từ chối '. Nhóm 'IIS_IUSRS' chứa các tài khoản' ApplicationPoolIdentity' cho mỗi trang web trên máy chủ vì vậy nếu cấu hình của bạn ở mức máy chủ thì phương pháp này hoạt động tốt. Chỉ cần nhớ rằng thư mục pickup của bạn sẽ cần phải cung cấp cho 'IIS_IUSRS' * ít nhất * quyền' sửa đổi' hoặc bạn sẽ tiếp tục gặp lỗi. – Lankymart

+0

Tuy nhiên bài viết liên kết là một lỗi khác ('Lỗi: CDO.Message.1 (0x80040220) Giá trị cấu hình" SendUsing "không hợp lệ trên IIS 7.5') và trong trường hợp này thêm quyền vào' IIS metabase' sẽ thực hiện ** không có gì ** vấn đề là quyền truy cập thư mục cho thư mục pickup. – Lankymart

Các vấn đề liên quan