さて、私の問題はこれです。フォームの送信時にメールを送信する簡単なvbscriptがあります。それが次のようなコードにある場合、電子メールを送信する場合(受信トレイで電子メールを受信します)、望ましくない2回:ページの読み込み時に1回、送信時に1回:
<% Sub sendEmail(mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword)
Set MyMail = CreateObject("cdo.message")
MyMail.From = mailFrom
MyMail.To = mailTo
MyMail.Subject = mailSubject
MyMail.HTMLBody = mailMessage
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailUsername
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailPassword
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
MyMail.Configuration.Fields.Update
MyMail.Send
Set MyMail = nothing
End Sub
Dim mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword
mailFrom = "example"
mailTo = "example"
mailSubject = "Email test"
mailMessage = "<html><body>example</body><html>"
mailServer = "example"
mailUsername = "example"
mailPassword = "example"
Call sendEmail(mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword)%>
だから私はこのようなことをしなければならないと思ったので、それは一度だけ送信されます。送信ボタンの下のフォームに非表示のフィールドを追加し、これにコードを編集します。唯一の問題は、これを行うと、フォームが正しく送信され、エラーが発生しないように見えますが、受信トレイに電子メールが届かないことです。どんな助けでも大歓迎です。私はこのようなものが得意ではありません、そして私はまだ学んでいます!:
<% if request.form("isSubmitted") = "yes" then
Sub sendEmail(mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword)
Set MyMail = CreateObject("cdo.message")
MyMail.From = mailFrom
MyMail.To = mailTo
MyMail.Subject = mailSubject
MyMail.HTMLBody = mailMessage
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = mailServer
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = mailUsername
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = mailPassword
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
MyMail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
MyMail.Configuration.Fields.Update
MyMail.Send
Set MyMail = nothing
End Sub
Dim mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword
mailFrom = "example"
mailTo = "example"
mailSubject = "Email test"
mailMessage = "<html><body>example</body><html>"
mailServer = "example"
mailUsername = "example"
mailPassword = "example"
Call sendEmail(mailFrom, mailTo, mailSubject, mailMessage, mailServer, mailUsername, mailPassword)
end if %>
編集#1:これは私の隠しフィールドです(送信ボタンの後に隠しフィールドも入れましたが無駄になりました)。
<input type="hidden" name="isSubmitted" id="isSubmitted" value="yes" />
<input type="submit" name="btnSubmit" id="btnSubmit" value="Submit" class="submit" />