尝试发送电子邮件时出错

时间:2010-10-09 20:36:32

标签: asp.net email smtp

道歉,因为我对此有点初学者。我正在尝试使用以下代码从我的ASP.NET网站发送电子邮件(显然用实际值替换主机名,用户名和密码):

Public Shared Sub Send(ByVal ToEmail As String, ByVal FromEmail As String, ByVal Subject As String, ByVal Message As String)
    Dim mm As New MailMessage(FromEmail, ToEmail, Subject, Message)

    Dim smtp As New SmtpClient("hostname")
    smtp.Credentials = New NetworkCredential("username", "password")

    smtp.Send(mm)
End Sub

尝试发送邮件时,我收到此错误:

“无法从传输连接中读取数据:net_io_connectionclosed。”

我已经在各个论坛上看了一下,试图找到一些帮助,但我不确定我应该做些什么来重新理解这一点。

非常感谢任何帮助。感谢。

4 个答案:

答案 0 :(得分:1)

感谢大家的回复。我实际上设法通过联系Namesco来解决这个问题 - 他们说我需要做的就是将我输入的主机名更改为“localhost”并且它有效。

答案 1 :(得分:0)

您尚未在web.config中设置SMTP服务器。

请参阅文章Sending Email with System.Net.Mail

中的web.config

您可以在IIS中执行此操作,但我建议您在应用程序的web.config中进行设置,以便开发团队更轻松地访问。

答案 2 :(得分:0)

基本上,您的SMTP服务器阻止了您发送邮件的请求。

您可以通过打开命令窗口并使用telnet命令尝试连接到邮件服务器来轻松地自行测试 - 它会立即将您解雇。

之前我没有使用过Namesco,但是通过添加尝试将邮件发送到IIS中允许的计算机列表的服务器的IP地址来解决此问题。

我猜Namesco不会将设置更改为“All Unassigned”,因为这会授予任何人发送邮件的权限。

答案 3 :(得分:0)

将以下行添加到您的web.config文件

<system.net>
    <mailSettings>
      <smtp from="email@yourdomain.com">
        <network host="smtp.yourdomain.com" port="25" userName="email@yourdomain.com" password="XXXXX" />
      </smtp>
    </mailSettings>
  </system.net>

以下是发送邮件的代码希望这有帮助

    Dim mMailMessage As New MailMessage()
        mMailMessage.From = New MailAddress("somebody@yahoo.com")
    If Not String.IsNullOrEmpty("somebody@yahoo.com") Then
        mMailMessage.ReplyTo = New MailAddress("somebody@yahoo.com")
    End If

    mMailMessage.To.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.Bcc.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.CC.Add(New MailAddress("somebody@yahoo.com"))

    mMailMessage.Subject = "some subject"
    mMailMessage.Body = "some body"

    mMailMessage.IsBodyHtml = False
    mMailMessage.Priority = MailPriority.Normal

    Try
        Dim mSmtpClient As New SmtpClient()
        mSmtpClient.Send(mMailMessage)
    Catch ex As SmtpException
        Debug.Print("Unable to send message " & ex.Message)
    End Try