2014-04-29 30 views
0

我正在开发一个发送电子邮件的应用程序,它具有使用用户的Windows凭据发送电子邮件的组件之一。使用应用程序用户的Windows凭据发送电子邮件

string SMTP = "smtp.corp.com"; 
MailMessage msg = new MailMessage(Sender, Recipient, Subject, Body); 
SmtpClient smtpclient = new SmtpClient(SMTP, 25); 
smtpclient.EnableSsl = false; 
smtpclient.UseDefaultCredentials = true; 
msg.IsBodyHtml = true; 
ServicePointManager.ServerCertificateValidationCallback = delegate(object s,X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; 
smtpclient.Send(msg); 

这个代码工作的本地计算机上,但该服务器是给错误

Mailbox unavailable. The server response was: 5.7.1 Client does not have permissions to send as this sender 

因为在这种情况下,发送方在部署后罚款:

string Sender = HttpContext.Current.User.Identity.Name+"@corp.com";

感谢

+0

的可能重复[.NET SMTP客户端 - 客户端没有权限发送的该发件人(http://stackoverflow.com/questions/7269174/net-smtp-client-client-does-not-have-权限发送作为这个发件人) –

+0

这有帮助吗? http://stackoverflow.com/questions/7269174/net-smtp-client-client-does-not-have-permissions-to-send-as-this-sender –

回答

1

在您的本地机器上,您的应用程序ru n作为管理员,因此具有发送电子邮件的完全权限所以它可以在你的本地机器上运行

但是在服务器上,如果你的应用程序没有以管理员身份运行,它将不具有发送电子邮件的权限。所以它不适用于你的服务器。

所以解决方案是,给你的应用程序的许可。

更详细的信息,请访问以下链接: http://social.technet.microsoft.com/Forums/exchange/en-US/e763de97-88a1-494d-9841-4f3a466b5604/exchange-550-571-client-does-not-have-permissions-to-send-as-this-sender

0

由于无法获得充分的权利,你在,你必须为他们提供在首位这种情况下,出现此错误。

要么你有一个像

smtpclient.UseDefaultCredentials = false; 
smtpclient.Credentials = new System.Net.NetworkCredential("username", "password"); 

变化或使Web.Config中更改,如

<mailSettings> 
<smtp from="[email protected]"> 
    <!--network host="EXCH-SERVER" port="25" userName="userName" password="password"   
    defaultCredentials="false" /-->         
<network host="EXCH-SERVER" port="25" /> 
</smtp> 
</mailSettings> 

请看看here

希望这会帮助你。

0

是它运行的Windows用户作为服务器上的服务器

上部署后?如果这是在IIS内运行的ASP.Net,那么它将使用您在应用程序池中设置的任何身份....这是?

相关问题