2013-05-08 20 views
0

我必須建立一個電子郵件的基本網站必須在ASP中,這是我一無所知。ASP電子郵件 - objCDOMail.Send服務器錯誤

我所建的形式,這一切似乎工作錯誤釋放,直到那裏的電子郵件必須發送的地步,特別是這一行:

objCDOMail.Send 

在瀏覽器中報告的錯誤是:

服務器錯誤500 - 內部服務器錯誤。您正在查找的資源 存在問題,並且無法顯示。

有沒有人有任何建議,爲什麼這可能會發生? 所有建議將非常感謝!

完整的代碼如下:

<% 
Dim name, email, comments 
Dim objCDOMail 'The CDO object 
name = Request.Form("name") 
email = Request.Form("email") 
comments = Request.Form("query") 
message = "<HTML><table border='0' width='80%' bgcolor='#FFFFFF'><tr><td> " & _ 
    "<p><strong>Name:</strong> " & name & _ 
    "<p><strong>E-mail:</strong> " & email & _ 
    "<p><strong>Comments:</strong> " & comments & _ 
    "<p><hr></td></tr></table></html>" 
Response.Write("" & message & "<br />") 
Set objCDOMail = CreateObject("CDO.Message") 
objCDOMail.From = "[email protected]" 
objCDOMail.To = "[email protected]" 
objCDOMail.Subject = "" 
objCDOMail.HTMLBody = message 
objCDOMail.Send 
Set objCDOMail = Nothing  
%> 
+0

您是否使用了「From」字段的有效電子郵件地址?通常這不會導致你詳細的錯誤(它不會發送),但它是值得一試。 (稻草去哪了?讓我抓住它!) – Paul 2013-05-08 11:28:44

+0

爲什麼不在IIS和瀏覽器中啓用詳細的錯誤,以便你能看到問題是什麼? – 2013-05-08 15:31:47

回答

0

這可能是與服務器。 IIS6和IIS7以不同的方式處理它。但是,這應該可以幫助您避開它。這是我從現有網站中提取的代碼,並稍作修改。您必須根據自己的目的進行擴充:

Response.Buffer = True 
Dim strBody 
Dim objCDOMail 
Dim strMyEmailAddress 
Dim strCCEmailAddress 
Dim strBCCEmailAddress 
Dim strReturnEmailAddress 

'THIS IS WHERE YOU CHANGE THE EMAIL ADDRESS 
strMyEmailAddress = "[email protected]" 
'strBCCEmailAddress = "[email protected]" 

strReturnEmailAddress = Request.Form("Email") 
strBody = strBody & "<br /><br /><span><strong>Name:</strong></span> " & Request.Form("name") 
strBody = strBody & "<br /><br /><span><strong>E-mail:</strong></span> " & Request.Form("email") 
strBody = strBody & "<br /><br /><span><strong>Company:</strong></span> " & Request.Form("company") 
strBody = strBody & "<br /><br /><span><strong>Enquiry:</strong></span> " & Request.Form("enquiry") 
strBody = strBody & "</p></div></body>" 
If Len(strReturnEmailAddress) < 5 OR NOT Instr(1, strReturnEmailAddress, " ") = 0 OR InStr(1, strReturnEmailAddress, "@", 1) < 2 OR InStrRev(strReturnEmailAddress, ".") < InStr(1,strReturnEmailAddress, "@", 1) Then 
strReturnEmailAddress = strMyEmailAddress 
End If 
Set objCDOMail = Server.CreateObject("CDO.Message") 
objCDOMail.From = Request.Form("name") & " <" & strReturnEmailAddress & ">" 
objCDOMail.To = strMyEmailAddress 
objCDOMail.Cc = strCCEmailAddress 
objCDOMail.Bcc = strBCCEmailAddress 
objCDOMail.Subject = "Your Email Subject" 
objCDOMail.HTMLBody = strBody '**This is for HTML Emails** 
objCDOMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing")=2 
objCDOMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")="localhost" 
objCDOMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport")=25 
objCDOMail.Configuration.Fields.Update 
objCDOMail.Send 
Set objCDOMail = Nothing 

最後幾行處理服務器並使用localhost發送郵件。您可以根據您的SMTP服務器進行更改。

+0

優秀!謝謝尼克。 – 2013-05-09 14:19:07