请问各位:
用户为域内用户,SmtpServer为一台Exchange Server2000(在同一个域内),采用的是nt authoritation的认证方式(域用户身份认证,发送邮件不需要额外的身份认证,只要是域用户就可以发送),用Outlook 发送邮件没有问题。我实验了.net下的WebMail类,CDO以及SOcket发送邮件,可以发送内部邮件,但是发送域外的用户却总是失败,提示为"550要求的邮件操作未完成,邮箱不可用(例
>如,邮箱未找到,或不可访问) 收件人地址有误",请问是什么原因,如何解决?谢谢!
用户为域内用户,SmtpServer为一台Exchange Server2000(在同一个域内),采用的是nt authoritation的认证方式(域用户身份认证,发送邮件不需要额外的身份认证,只要是域用户就可以发送),用Outlook 发送邮件没有问题。我实验了.net下的WebMail类,CDO以及SOcket发送邮件,可以发送内部邮件,但是发送域外的用户却总是失败,提示为"550要求的邮件操作未完成,邮箱不可用(例
>如,邮箱未找到,或不可访问) 收件人地址有误",请问是什么原因,如何解决?谢谢!
string strSmtpServer = ConfigurationSettings.AppSettings["SmtpServer"]; //get the smtp server to email from Web.config
string strMailFrom = ConfigurationSettings.AppSettings["MailFrom"]; //get MailFrom from Web.config
string strMailSubject = ConfigurationSettings.AppSettings["MailSubjectToSupplier"]; //get MailSubject from web.config
string strMailUserName = ConfigurationSettings.AppSettings["MailUserName"]; //get MailFrom from Web.config
string strMailUserPassword = ConfigurationSettings.AppSettings["MailUserPassword"]; //get MailSubject from web.config
string strMailTo = ConfigurationSettings.AppSettings["MailTo"];;
string[] arrMailParameter = new string[7];
string strMailBody = "Wraxall";
arrMailParameter[0] = strSmtpServer;
arrMailParameter[1] = strMailFrom;
arrMailParameter[3] = strMailSubject;
arrMailParameter[4] = strMailBody;
arrMailParameter[5] = strMailUserName;
arrMailParameter[6] = strMailUserPassword; int iTemp = Convert.ToInt32(ConfigurationSettings.AppSettings["MailMethod"]);
// ArrayList arrlsManufactures = objPOrderBLL.GetManufacturesByPOrder(objPOrder); //get Manufactures of company by POrder
// for (int i = 0; i < arrlsManufactures.Count; i++)
// {
// strMailTo = ((Company)arrlsManufactures[i]).Email;
arrMailParameter[2] = strMailTo;
// switch (iTemp)
// {
// case 1: //use CDO
// sendMailByCDO1(arrMailParameter); //send email to every Company
// break;
// case 2: //use smtp
// sendMailBySmtp(arrMailParameter);
// break;
// case 3: //use smtp new
// sendMailBySmtpNew(arrMailParameter);
// break;
// case 4: //use Email class
Email objEmail = new Email();
objEmail.MailDomainPort = 25;
objEmail.MailServerUserName = strMailUserName;
objEmail.MailServerPassWord = strMailUserPassword;
objEmail.RecipientMaxNum = 5;
objEmail.MailDomain = strSmtpServer;
objEmail.RecipientName = strMailTo;
// objEmail.
bool bSend = objEmail.Send(strSmtpServer, strMailFrom, "", strMailTo, strMailTo, false, strMailSubject, strMailBody);
if (bSend)
{
this.lblErrorMessage.Visible = true;
this.lblErrorMessage.Text = objEmail.ErrorMessage;
}
else
{
this.lblErrorMessage.Visible = true;
this.lblErrorMessage.Text = objEmail.ErrorMessage;
}