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

问题描述:

我有一个应用程序工作正常,所有的电子邮件功能工作正常。在.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 

请有什么建议可以此错误背后的原因,做让我知道如何解决这个问题。

+0

出于好奇:你认为这个问题是针对VB.NET的吗?这就是为什么你提到VB.NET的主题? – 2009-10-14 01:30:14

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

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

实际上是从你的邮件服务器到来,而框架只是传递错误信息到您的应用程序,并把它扔作为例外的一部分。

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

+0

顺便说一句,如果错误仍然存​​在,那么我会检查你的邮件服务器日志。邮件服务器有问题,那我会先检查。 – 2009-10-13 13:40:48

检查你的电子邮件,看它是否开始工作。

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