【问题标题】:System.Net.Mail - Sending two emails?System.Net.Mail - 发送两封电子邮件?
【发布时间】:2012-08-20 09:56:29
【问题描述】:

使用以下函数:

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, "ayockel@mydomain.com", "Name Change Request - " & txtCurrentName.Text, iandambody)

End Sub

它工作得很好,但是它发送的是两封电子邮件而不是一封。任何人都可以弄清楚为什么它发送重复?

【问题讨论】:

  • 调用代码在哪里执行?能不能在sendmail的第一行下个断点,通过它调试?
  • 可能是你的函数被调用了两次?
  • 问题可能出在调用代码上,而不是这里。你能显示/评论那部分代码吗?
  • SendMail(txtRequesterEmail.text, "myemail@domain.com", "Name Change", "Body of email") 是调用代码。没有别的了。
  • 您是如何调用 SendMail 功能的?任何事件处理程序(按钮)或页面加载事件,发布该代码

标签: asp.net vb.net smtp


【解决方案1】:

我冒昧地猜测您绑定了按钮单击事件两次:一次通过标记中的OnClick 属性:

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

然后通过Handles 再次通过代码隐藏:

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

如果是这样,我会删除其中一个。我会保留后者,以便您知道 btnSubmit_Click 事件在编译时已正确连接。

A discussion of this issue.

【讨论】:

    猜你喜欢
    • 2013-04-02
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多