0

ASP である必要がある基本的な Web サイト用の電子メールを作成する必要がありますが、これについては何も知りません。

私はフォームを作成しましたが、電子メールを送信する必要があるポイント、具体的には次の行まで、すべてエラーなしで動作するようです:

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 = "user@domain.co.uk"
objCDOMail.To = "user@domain.co.uk"
objCDOMail.Subject = ""
objCDOMail.HTMLBody = message
objCDOMail.Send
Set objCDOMail = Nothing    
%>
4

1 に答える 1

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 = "you@yourdomain.com"
'strBCCEmailAddress = "bcc@yourdomain.com"

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 サーバーに応じて変更できます。

于 2013-05-09T09:11:00.113 に答える