/// <summary> /// Raises Error event. /// </summary> /// <param name="type">Error type.</param> /// <param name="affectedAddresses">Affected email addresses.</param> /// <param name="errorText">Error text.</param> protected void OnFaulted(SmtpErrorType type, string[] affectedAddresses, string errorText) { // we must lock write(add), becuse multiple Threads may raise OnError same time. lock (SendErrors) { SendErrors.Add(new SmtpError(type, affectedAddresses, errorText)); } }
//------------------------------------------------------------------------------------------------------------------------- // //------------------------------------------------------------------------------------------------------------------------- /// <summary> /// /// </summary> /// <param name="to"></param> /// <param name="from"></param> /// <param name="message"></param> /// <returns></returns> public bool Send(string[] p_receipients, string p_sender, Stream p_message) { var _result = true; SendErrors.Clear(); Hashtable _rcptPerServer = GetSameDomain(p_receipients); // Loop through the list of servers where we must send messages foreach (ArrayList _sameAddresses in _rcptPerServer.Values) { string[] _reciepients = new string[_sameAddresses.Count]; _sameAddresses.CopyTo(_reciepients); p_message.Seek(0, SeekOrigin.Begin); if (SendMessageToServer(_reciepients, p_sender, p_message) == false) { _result = false; break; } } return(_result); }