SMTP client.
Inheritance: IDisposable
コード例 #1
0
        /// <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>();
        }
コード例 #2
0
        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();
        }
コード例 #3
0
 /// <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;
 }