public bool Send(string eFrom, string eTo, string subj, string body, int woNum, int woRespNum, string proj) { ldapClient userObject = new ldapClient(); UserRecord ud; ud = userObject.SearchUser(eFrom.ToString()); eFrom = ud.Email.ToString(); ud = new UserRecord(); ud = userObject.SearchUser(eTo.ToString()); eTo = ud.Email; LoadCC(woNum, proj); //MailMessage mailmsg = new MailMessage(); MailAddress mailFrom = new MailAddress(eFrom); //+ "@acme.com" MailAddress mailRecip = new MailAddress(eTo); //+ "@acme.com" if (mailmsg.CC.Count > 0) { MailAddress[] MAarray = new MailAddress[0]; foreach (MailAddress ma in mailmsg.CC) { if (ma.Address == mailRecip.Address || ma.Address == mailFrom.Address) { Array.Resize(ref MAarray, MAarray.Length + 1); MAarray[MAarray.Length - 1] = ma; //Array.Copy(ma,MAarray,1); } } if (MAarray.Length > 0) { foreach (MailAddress ma1 in MAarray) { mailmsg.CC.Remove(ma1); } } } mailmsg.From = mailFrom; mailmsg.ReplyTo = mailFrom; //mailTo.Add(mailRecip); mailmsg.To.Add(mailRecip); mailmsg.Subject = subj; mailmsg.Body = body; SmtpClient mailClient = new SmtpClient(); mailClient.UseDefaultCredentials = true; mailClient.Port = 25; try { mailClient.Send(mailmsg); WorkOrderBLL WOobj = new WorkOrderBLL(); int eMailNum = WOobj.GetMaxEmailNum(woNum, proj) + 1; bool YNemail = WOobj.InsertEmailRecord(eMailNum, woNum, woRespNum, proj, mailmsg.From.ToString(), mailmsg.To.ToString(), mailmsg.CC.ToString(), mailmsg.Subject, mailmsg.Body, DateTime.Now); } catch (SmtpFailedRecipientsException recExc) { for (int i = 0; i < recExc.InnerExceptions.Length; i++) { SmtpStatusCode statCd = recExc.InnerExceptions[i].StatusCode; if ((statCd == SmtpStatusCode.MailboxBusy) || (statCd == SmtpStatusCode.MailboxUnavailable)) { System.Threading.Thread.Sleep(5000); mailClient.Send(mailmsg); } } } catch (SmtpException smtpEx) { string errmsg = smtpEx.InnerException.Message; string errmsg2 = smtpEx.Message; string statusCd = smtpEx.StatusCode.ToString(); return(false); } catch (Exception Ex) { string ExMsg = Ex.Message; } return(true); }