2017-06-22 122 views
1

完整的错误远程名称无法解析http://schemas.microsoft.com/cdo/configuration/smtpauthenticate

的System.Exception:错误发送邮件(0字节):邮箱不可用。 服务器响应为:5.7.1客户端无权将 作为此发件人发送---> System.Net.Mail.SmtpException:邮箱 不可用。服务器响应为:5.7.1客户端没有 权限发送的该发件人

五年前我继承了一个项目,它至少为6岁。该项目包含几个Web应用程序和几个桌面应用程序&服务。

Web应用程序很经常地发送电子邮件,直到最近它一直没有太多的问题。

当我们开始发现这个错误时,我在我的最后尝试了一些东西。我创建了一个小型测试Web应用程序并将其部署到单独的服务器上。我使用了相同的邮件服务器,地址和凭证。它工作正常。我还在应用程序所在的服务器上使用了dbmail,并再次使用相同的邮件地址。它也可以。

我读过六七个问题&这个问题和其他地方的答案都无济于事。这似乎很清楚,这是邮件服务器返回此错误。但是,如果是这样的话,为什么我要发送SQL Server的dbmail和测试应用程序呢?

以下是为了匿名而进行的一些更改的连接信息。

static void SendEmail(MailMessage msg) 
{ 
    msg.Headers["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"] = "2"; 

    using (var c = new SmtpClient 
    { 
     Host = "mailserver.address.com", 
     Port = 587, 
     UseDefaultCredentials = false, 
     Credentials = new System.Net.NetworkCredential("UserName", "password", "address.com"), 
     EnableSsl = false, 
     DeliveryMethod = SmtpDeliveryMethod.Network 
    }) 
    { 
     try 
     { 
      c.Send(msg); 
     } 
     catch (Exception ex) 
     { 
      var size = msg.Attachments.Sum(a => a.ContentStream.Length); 
      throw new Exception(string.Format("Error sending email ({0} bytes): {1}", size, ex.Message), ex); 
     } 
    } 
} 

什么也大大加剧的问题是源代码,我有大约一半的这些应用显然是不相同的部署代码。当我几年前开始时,他们已经没有版本控制。所以,我不能轻易调整代码并重新部署,因为它会破坏整个应用程序。我将不得不做一次全面的检修(实际上,我是,但不久将来无法做好准备)。

任何意见非常感谢。


我找到了原因。

该端口未添加在我的测试中。添加时会导致错误。

这个月为什么会在某个特定的日期休息?

+0

您有权访问邮件服务器的日志吗?也许它会揭示一些东西。 – itsme86

+0

web.config中的“from”与测试应用程序和其他可成功工作的方法相同吗?我没有看到一个From这里。 – KSib

+0

msg中指定了“from”。所有消息都是相同的用户。 – shubniggurath

回答

0

这是一个邮件服务器问题。系统管理员是唯一能够解决这个问题的人,并且我能够让他们解决。谢谢。

相关问题