完整的錯誤遠程名稱無法解析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);
}
}
}
什麼也大大加劇的問題是源代碼,我有大約一半的這些應用顯然是不相同的部署代碼。當我幾年前開始時,他們已經沒有版本控制。所以,我不能輕易調整代碼並重新部署,因爲它會破壞整個應用程序。我將不得不做一次全面的檢修(實際上,我是,但不久將來無法做好準備)。
任何意見非常感謝。
我找到了原因。
該端口未添加在我的測試中。添加時會導致錯誤。
這個月爲什麼會在某個特定的日期休息?
您有權訪問郵件服務器的日誌嗎?也許它會揭示一些東西。 – itsme86
web.config中的「from」與測試應用程序和其他可成功工作的方法相同嗎?我沒有看到一個From這裏。 – KSib
msg中指定了「from」。所有消息都是相同的用戶。 – shubniggurath