2

こんにちは、送信ボタンをクリックして HTML から ASP ページを呼び出しています。ASP で電子メールを送信したいと考えています。だから私は以下のコードを書きましたが、メールを送信しておらず、エラーも発生していません。

<%
dim myMail
Set myMail=CreateObject("CDO.Message")
myMail.Subject="Sending email with CDO"
myMail.From="FromEmail"
myMail.To="ToEmail"

myMail.HTMLBody = "<h1>This is a message.</h1>"
On Error Resume Next
myMail.Send
If Err.Number = 0 then
  Response.ContentType="application/json"
  Response.Write "{ request: 'success'}"
Else
  Response.ContentType="application/json"
  Response.Write "{ request: 'failed'}"
End If

set myMail=nothing
%>

誰でもこれについて私を助けてもらえますか..?

4

2 に答える 2

0

エラーを続行しているため、エラーが発生してもエラーは表示されません。

削除する

On Error Resume Next

コードから、どのようなエラー メッセージが表示されるかを確認します。

于 2013-09-30T07:51:03.867 に答える
0

このコードには、電子メール フォームがスパマーに使用されるのを防ぐための RegExp も含まれています。

<%
strVisitorMSG= _
"Your message goes here" & _
"If it's a long message you can break it up using & _" & _
"The last line of your meassage omits & _"

Set RegularExpressionObject = New RegExp
With RegularExpressionObject
.Pattern = "^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"
.IgnoreCase = True
.Global = True
End With
expressionmatch = RegularExpressionObject.Test(Request.Form("E-mail"))

If expressionmatch  Then

Dim ObjSendMail
Set ObjSendMail = CreateObject("CDO.Message")

ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 '1 'Send the message using the network (SMTP over the network).
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "Your.smtpServer.name" ' this is your smtp server usually something like smtp.somedomain.com
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 '25 is the standard smtp port but check with your host to be sure
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False 'Use SSL for the connection (True or False)
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0 'Can be 0 for No Authentication, 1 for basic authentication or 2 for NTLM (check with your host)
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Username" 'The username log in credentials for the email account sending this email, not needed if authentication is set to 0
ObjSendMail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "emailPassword" 'The password log in credentials for the email account sending this email, not needed if authentication is set to 0

ObjSendMail.Configuration.Fields.Update

ObjSendMail.From = "FromEmail"
ObjSendMail.To = "ToEmail"
ObjSendMail.Subject = "Place your subject here"

ObjSendMail.TextBody = strVisitorMSG 'uncomment to send plain text email
'ObjSendMail.HTMLBody = strVisitorMSG 'uncomment to send html formatted email

ObjSendMail.Send

Set ObjSendMail = Nothing

End If
Set RegularExpressionObject = nothing
%>

便宜上、構成フィールドにはコメントが付けられています。Web ホスト メール サーバーが認証を必要としない場合は、最後の 3 つの構成フィールド (認証、ユーザー名とパスワード) を省略できます。

この行 'expressionmatch = RegularExpressionObject.Test(Request.Form("E-mail"))' の "E-mail" という単語は、送信者の電子メール アドレスを含むフォーム フィールドの名前です。

于 2013-09-28T10:09:19.517 に答える