2012-08-24 181 views
0

使用以下功能:System.Net.Mail - 發送兩封電子郵件?

Public Sub SendMail(ByVal SendFrom As String, ByVal SendTo As String, ByVal Subject As String, ByVal Body As String) 

    Dim client As New SmtpClient 
    Dim message As New MailMessage 

    message.Body = Body 
    message.Subject = Subject 
    message.From = New MailAddress(SendFrom) 
    message.To.Add(New MailAddress(SendTo)) 

    client.Port = "25" 
    client.Host = "smtp.myserver.com" 

    client.Send(message) 

End Sub 

我把它與

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) Handles btnSubmit.Click 

    Dim iandamsb As New StringBuilder 

    iandamsb.AppendLine("Please make the following changes:") 
    iandamsb.AppendLine("") 
    iandamsb.AppendLine("Current name:" & txtCurrentName.Text) 
    iandamsb.AppendLine("New name:" & txtNewName.Text) 
    iandamsb.AppendLine("New username:" & txtNewUsername.Text) 
    iandamsb.AppendLine("Applications:" & txtOtherApplications.Text) 

    Dim iandambody As String = iandamsb.ToString 

    SendMail(txtRequesterEmail.Text, "[email protected]", "Name Change Request - " & txtCurrentName.Text, iandambody) 

End Sub 

它工作得很好,但它是發送兩封電子郵件,而不是一個。任何人都可以找出它爲什麼發送重複?

+0

調用代碼在哪裏執行?你可以在sendmail的第一行放置一個斷點並通過它進行調試嗎? – Burt

+2

可能是你的函數被調用兩次? –

+0

問題可能出現在調用代碼中,而不是在這裏。你能顯示/評論那部分代碼嗎? – Steve

回答

3

我冒昧地猜測,你有按鈕點擊事件勢必兩次:通過Handles

<asp:Button OnClick="btnSubmit_Click" runat="server" ... /> 

,然後再通過後臺代碼:一旦通過標記的OnClick屬性

Protected Sub btnSubmit_Click(sender As Object, e As System.EventArgs) 
    Handles btnSubmit.Click 

如果是這種情況,我會刪除其中的一個。我會保留後者,以便您知道在編譯時btnSubmit_Click事件已正確接線。

A discussion of this issue

相關問題