完整的错误远程名称无法解析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