我的电子邮件联系表(由于某种未知原因)发送两次,有时甚至三次,尽管这种情况很少见。
这是我的VB:
<% @Import Namespace="System.Web.Mail" %>
<script language="vb" runat="server">
Sub btnSendFeedback_Click(sender as Object, e as EventArgs)
Dim objMM as New MailMessage()
objMM.To = "info@emailaddress.com"
objMM.From = txtEmail.Text
'objMM.Cc = "someone@someaddress.com"
'objMM.Bcc = "someone@someaddress.com"
objMM.BodyFormat = MailFormat.Text
objMM.Priority = MailPriority.Normal
objMM.Subject = "Scotts Holiday Village"
objMM.Body = "Hello. At " + DateTime.Now + " an initial enquiry " & _
"was made " & _
"by a: " & txtTitle.Text & " " & txtFName.Text & " " & txtLName.Text & "." & vbCrLf & vbCrLf & _
""& txtAdOne.Text & vbCrLf & _
txtAdTwo.Text & vbCrLf & _
txtAdThree.Text & vbCrLf & _
""& txtCity.Text & vbCrLf & _
""& txtPostCode.Text & vbCrLf & vbCrLf & _
"Phone number: " & vbCrLf & txtPhone.Text & vbCrLf & vbCrLf & _
"Email address: " & vbCrLf & txtEmail.Text & vbCrLf & vbCrLf & _
"When are you looking to buy?: " & vbCrLf & txtWhenBuy.Text & vbCrLf & vbCrLf & _
"Estimated budget: " & vbCrLf & txtEstBudget.Text & vbCrLf & vbCrLf & _
"What's given you the idea of buying?: " & vbCrLf &txtIdea.Text & vbCrLf & vbCrLf & _
"Message: " & vbCrLf &txtMsg.Text & vbCrLf
SmtpMail.SmtpServer = "smtp.1and1.com"
SmtpMail.Send(objMM)
panelSendEmail.Visible = false
panelMailSent.Visible = true
End Sub
</script>
panelMailSent重定向到感谢,确认页面可能与它有关,我不确定:
<asp:panel id="panelMailSent" runat="server" Visible="False">
<% Response.Redirect("/thankyou/message-sent.aspx") %>
</asp:panel>
提交按钮:
<asp:Button runat="server" ID="btnSendFeedback" Text="Send my form"
OnClick="btnSendFeedback_Click" />
表单方法:
<form method="post" id="genericForm" action="default.aspx" name="installer" onsubmit="showHide(); return false;">
非常感谢。
答案 0 :(得分:0)
在页面底部(上面有提交按钮),以下javascript可能会有所帮助。这样可以通过禁用控件来防止双击:
<script type="text/javascript" language="javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(DoubleClickHandler);
function DoubleClickHandler(sender, args)
{
var c = args.get_postBackElement();
c.disabled = true;
}
</script>
还有很多其他方法;检查服务器端是最安全的,但在asp.net中实现起来更复杂。有时使用的另一种方法是不阻止双重提交,而是存储这些电子邮件请求(例如,在数据库中),然后任务将每隔5分钟(例如)发送所有电子邮件,从而删除重复项。< / p>