在.NET中发送电子邮件时出错

时间:2009-10-13 06:22:13

标签: vb.net

我的应用程序工作正常,所有电子邮件功能都运行良好。

从昨天起,我开始收到以下错误

Error Message:Service not available, closing transmission channel. The server response was: 4.3.2 Service not available, closing transmission channel

我的sendmail VB.net代码如下:

 Public Sub SendMessage(ByVal toAddress As String, ByVal ccAddress As String)
        Try
            Dim message As New MailMessage()
            Dim client As New SmtpClient()
            'Set the sender's address
            message.From = New MailAddress(fromAddress)
            If (toAddress.Trim.Length > 0) Then
                For Each addr As String In toAddress.Split(";"c)
                    message.To.Add(New MailAddress(addr))
                Next
            End If
            If (ccAddress.Trim.Length > 0) Then
                For Each addr As String In ccAddress.Split(";"c)
                    message.CC.Add(New MailAddress(addr))
                Next
            End If
            message.BodyEncoding = Encoding.UTF8
            message.Subject = Subject
            message.Body = Body
            message.IsBodyHtml = True
            client.Send(message)
        Catch ex As Exception
            ErrorHandler.WriteError(ex.Message)
        End Try
    End Sub

请建议导致此错误的原因,并告诉我如何解决此问题。

2 个答案:

答案 0 :(得分:1)

您的代码没有任何问题。这部分错误信息:

4.3.2服务不可用,关闭传输通道

实际上来自您的邮件服务器,框架只是将错误消息传递给您的应用程序,并将其作为异常的一部分抛出。

4.x.x错误通常是暂时的,并且意味着要重试。通常,邮件服务器在发出400错误时会超载。

答案 1 :(得分:0)

检查您的电子邮件,看它是否开始有效。

在客户端计算机检查POP电子邮件之后,某些电子邮件服务器将允许邮件发送30分钟(或一定长度),而不是(或除此之外)smtp身份验证。如果是这种情况,它可以使不使用smtp身份验证的应用程序有时显示工作,有时不工作,代码没有变化。