private void OnMailStringSubmit_Click(object sender, RoutedEventArgs e) { // something is being processed if (this.worker != null) { return; } ClearTrace(); this.worker = new BackgroundWorker(); this.worker.WorkerReportsProgress = true; this.worker.WorkerSupportsCancellation = false; this.worker.DoWork += new DoWorkEventHandler(DoMailSubmit); this.worker.ProgressChanged += new ProgressChangedEventHandler(OnProgressChanged); this.worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(OnWorkerCompleted); MailSubmitData data = new MailSubmitData(); data.StartCommand = this.Start_1.SelectedIndex == 0 ? "EHLO" : "HELO"; data.ServerAddess = this.ServerAddress.Text; data.ServerPort = this.ServerPort.Text; data.FromAddress = this.FromAddress_1.Text; data.FromOption = this.FromOption_1.Text; data.ToAddress = this.ToAddress_1.Text; data.ToOption = this.ToOption_1.Text; data.MailData = this.MailData.Text; data.DataOption = this.DataOption_1.Text; data.DotPad = this.DotPad_1.IsChecked.HasValue ? this.DotPad_1.IsChecked.Value : true; this.worker.RunWorkerAsync(data); }
private void OnMailRawSubmit_Click(object sender, RoutedEventArgs e) { // something is being processed if (this.worker != null) { return; } ClearTrace(); this.worker = new BackgroundWorker(); this.worker.WorkerReportsProgress = true; this.worker.WorkerSupportsCancellation = false; this.worker.DoWork += new DoWorkEventHandler(DoMailRawSubmit); this.worker.ProgressChanged += new ProgressChangedEventHandler(OnProgressChanged); this.worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(OnWorkerCompleted); MailSubmitData data = new MailSubmitData(); data.ServerAddess = this.ServerAddress.Text; data.ServerPort = this.ServerPort.Text; data.RawData = this.ContentData.Text; this.worker.RunWorkerAsync(data); }
private void DoMailRawSubmit(object sender, DoWorkEventArgs workArgs) { MailSubmitData data = workArgs.Argument as MailSubmitData; SendToServer(data.ServerAddess, data.ServerPort, data.RawData); AddTraceAsync(this.delim); Cleanup(); }
private void DoMailSubmit(object sender, DoWorkEventArgs workArgs) { MailSubmitData data = workArgs.Argument as MailSubmitData; string dataToSend; bool success = true; if (success) { dataToSend = data.StartCommand; success = SendToServer(data.ServerAddess, data.ServerPort, dataToSend); AddTraceAsync(this.delim); } if (success) { dataToSend = "MAIL FROM:" + data.FromAddress; if (!string.IsNullOrEmpty(data.FromOption)) { dataToSend += " " + data.FromOption; } success = SendToServer(data.ServerAddess, data.ServerPort, dataToSend); AddTraceAsync(this.delim); } if (success) { dataToSend = "RCPT TO:" + data.ToAddress; if (!string.IsNullOrEmpty(data.ToOption)) { dataToSend += " " + data.ToOption; } success = SendToServer(data.ServerAddess, data.ServerPort, dataToSend); AddTraceAsync(this.delim); } if (success) { dataToSend = "DATA"; if (!string.IsNullOrEmpty(data.DataOption)) { dataToSend += " " + data.DataOption; } success = SendToServer(data.ServerAddess, data.ServerPort, dataToSend); AddTraceAsync(this.delim); } if (success) { AddTraceAsync(string.Format("Dot padding - {0}", data.DotPad)); AddTraceAsync(this.delim); if (!string.IsNullOrEmpty(data.MailDataFile)) { byte[] mailBytes = File.ReadAllBytes(data.MailDataFile); if (data.DotPad) { byte[] tmpBytes = DotPad(mailBytes); mailBytes = tmpBytes; } success = SendToServer(data.ServerAddess, data.ServerPort, mailBytes, false); } else { string[] mailParts = data.MailData.Split(new string[] { "\r\n" }, StringSplitOptions.None); foreach (string part in mailParts) { string tmpPart = part; if (data.DotPad) { tmpPart = DotPad(part); } success = SendToServer(data.ServerAddess, data.ServerPort, tmpPart, false); if (!success) { break; } } } AddTraceAsync(this.delim); } if (success) { dataToSend = "."; success = SendToServer(data.ServerAddess, data.ServerPort, dataToSend); AddTraceAsync(this.delim); } Cleanup(); }