2017-06-22 125 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

這是一個郵件服務器問題。系統管理員是唯一能夠解決這個問題的人,並且我能夠讓他們解決。謝謝。

相關問題