/// <summary> /// Default constructor. /// </summary> /// <param name="server">Reference to owner relay server.</param> /// <param name="file">Message file to relay.</param> /// <param name="relay_retry">If true then first time relay, otherwise retry attempt.</param> public Relay_Session(Relay_Server server,string file,bool relay_retry) { m_pRelayServer = server; m_MessageFile = file; m_relay_retry = relay_retry; m_pMessageStream = File.Open(m_MessageFile,FileMode.Open,FileAccess.ReadWrite,FileShare.Read); m_pRelayInfo = new RelayInfo(m_pMessageStream,m_pRelayServer.UndeliveredAfter,m_pRelayServer.UndeliveredWarningAfter); m_SessionID = Guid.NewGuid().ToString(); m_SessionStartTime = DateTime.Now; m_pSmtpClient = new SmtpClientEx(); m_pSmtpClient.DnsServers = new string[]{m_pRelayServer.Dns1,m_pRelayServer.Dns2}; if(m_pRelayServer.LogCommands){ m_pSmtpClient.SessionLog += new LogEventHandler(OnSMTP_LogPart); } m_pConnectPoints = new Queue<IPAddress>(); }
private void btnSend_Click(object sender, EventArgs e) { GUIValidation.TrimAllData(new object[] { this.textSubject, this.textSmartHost }); if (!this.CheckValidation()) return; this.Cursor = Cursors.WaitCursor; bool bFlag = true; try { FrameworkParams.wait = new WaitingMsg(); Mime message = CreateMessage(); if (cmbSendType._getSelectedID() == (Int64)SendType.SmartHost) { SmtpClientEx.QuickSendSmartHost(this.textSmartHost.Text, 25, "",message); } else if (cmbSendType._getSelectedID()== (Int64)SendType.DNS) { using (SmtpClientEx smtp = new SmtpClientEx()) { smtp.DnsServers = new string[] { this.textSmartHost.Text}; IPAddress[] ips = smtp.GetDestinations(this.textSmartHost.Text); SmtpClientEx.QuickSendSmartHost(ips[0].ToString(), 25, "", message); } } } catch (Exception ex) { HelpMsgBox.ShowErrorMessage("Gửi mail không thành công.\nVui lòng kiểm tra lại thông tin hoặc dữ liệu đang được sử dụng!"); bFlag = false; } finally { if (FrameworkParams.wait != null) { FrameworkParams.wait.Finish(); } } this.Cursor = Cursors.Default; if (bFlag) this.Close(); }
/// <summary> /// Clean up any resources beeing used. /// </summary> public void Dispose() { if(m_pMessageStream != null){ try{ m_pMessageStream.Dispose(); } catch{ } m_pMessageStream = null; } if(m_pSmtpClient != null){ try{ m_pSmtpClient.Dispose(); m_pSmtpClient = null; } catch{ } } m_pRemoteEndPoint = null; }