我想在没有的情况下运行以下代码
NetworkCredential nc = new Net.NetworkCredential("USERNAME", "PASSWORD").
通过仅使用Exchange主机(服务器名称)和端口
此代码出现错误:邮箱不可用。服务器响应为:5.7.1客户端无权作为此发件人发送
protected void SendEmail(object sender, EventArgs e)
{
SmtpClient smtpClient = new SmtpClient("ExchangeServerName",25);
MailMessage message = new MailMessage();
try
{
MailAddress fromAddress = new MailAddress("bala@OfficeName.com", "From Me");
MailAddress toAddress = new MailAddress("bala@OfficeName.com", "To You");
message.From = fromAddress;
message.To.Add(toAddress);
message.Subject = "Testing!";
message.Body = "This is the body of a sample message";
smtpClient.UseDefaultCredentials = true;
System.Net.NetworkCredential nc = CredentialCache.DefaultNetworkCredentials;
smtpClient.Credentials = (System.Net.ICredentialsByHost)nc.GetCredential("ExchangeServerName", 25, "Basic");
smtpClient.Send(message);
lblText.Text ="Email sent.";
}
catch (Exception ex)
{
lblText.Text = "Coudn't send the message!n " + ex.Message;
}
}
我已经完成了。有关我的代码的更多详细信息,请使用此链接。
以下代码适用于
服务器:WindowsServer2003、WindowsServer2008、WindowsServer2008R2
IIS:6.0、7.0
.Net框架Wotk:2.0,3.5,4.0
string sMessage;
SmtpClient smtpClient = new SmtpClient();
MailMessage message = new MailMessage();
try
{
//you can provide invalid from address. but to address Should be valil
MailAddress fromAddress = new MailAddress("bala@technospine.com", "BALA");
smtpClient.Host = "Exchange Server Name";
smtpClient.Port = 25;
//smtpClient.Port = 587;
smtpClient.UseDefaultCredentials = true;
message.From = fromAddress;
message.To.Add(bala@technospine.com); //Recipent email
message.Subject = _subject;
message.Body = _details;
message.IsBodyHtml = true;
//smtpClient.EnableSsl = true;
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(message);
sMessage = "Email sent.";
}
catch (Exception ex)
{
sMessage = "Coudn't send the message!n " + ex.Message;
}
lblMailStatus.Text = sMessage;
您正试图使用Exchange发送邮件。为此,发件人(或发送进程)必须对其登录的帐户具有权限,才能代表您指定为发件人的用户进行发送。这与通过Exchange的SMTP邮件传输代理(MTA)让Exchange接收和路由电子邮件不同。因此,您知道应该使用SMTP来完成这项工作,这是正确的,但您只是试图使用错误的API来实现这一点。您希望了解CDOSYS通过SMTP MTA发送邮件而无需进行用户身份验证。在System.Web.Mail.MailMessage上搜索更具体的例子——有很多。如果Exchange服务器似乎不接受/传递以这种方式传递给它的SMTP邮件,您可能只需要稍微打开它的配置。在这种情况下,Exchange服务器在路由通过其SMTP MTA接收的邮件时可能配置了严密的安全性,只需要将发送这些邮件的计算机的IP地址配置为允许邮件转发。
try NetworkCredential nc=new Net.NetworkCredential("用户名"、"密码"、"域")