private void timer1_Tick(object sender, EventArgs e)
        {
            timer1.Enabled = false;
            try {
                string   path         = FileUtils.AddTrailingBackSlash(smtpFileHandler1.RelayDir);
                string[] envelopeList = Directory.GetFiles(path, "*" + SmtpFileHandler.EnvelopeFileExt);
                foreach (string env in envelopeList)
                {
                    string[] envelope = File.ReadAllLines(env);
                    if (envelope.Length < 2)
                    {
                        continue;
                    }

                    smtpRelay1.MailFrom   = envelope[0];
                    smtpRelay1.MailToList = ExtractRelayTo(envelope);

                    string msg = Path.ChangeExtension(env, SmtpFileHandler.MessageFileExt);
                    using (Stream stream = File.OpenRead(msg)) {
                        smtpRelay1.MailData.LoadFromStream(stream, "");
                    }

                    smtpRelay1.Send();

                    File.Delete(msg);
                    File.Delete(env);
                }
            }
            finally {
                timer1.Enabled = true;
            }
        }
示例#2
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            this.watcher.EnableRaisingEvents = false;
            this.watcher.Path = FileUtils.AddTrailingBackSlash(edtQueueFolder.Text);
            this.watcher.EnableRaisingEvents = true;

            relay.DnsServer = edtDNS.Text;

            this.Text = "Mail Sending Queue - Started";
        }
示例#3
0
        private void AssignSettings()
        {
            if (sFtpServer1.Active)
            {
                return;
            }

            //Server Tab
            sFtpServer1.Port         = Convert.ToInt32(edtPort.Text);
            sFtpServer1.LocalBinding = edtBindingHost.Text;
            sFtpServer1.UseIpV6      = cbUseIPv6.Checked;
            sFtpServer1.RootDir      = edtRootDir.Text;
            if (!StringUtils.IsEmpty(sFtpServer1.RootDir))
            {
                Directory.CreateDirectory(FileUtils.AddTrailingBackSlash(sFtpServer1.RootDir));
            }

            //Banner Tab
            sFtpServer1.Banner         = edtBannerMessage.Text;
            sFtpServer1.BannerLanguage = edtBannerLanguage.Text;
            sFtpServer1.EnableBanner   = cbEnableBanner.Checked;

            //Access Control Tab
            sFtpServer1.UserAccounts.Clear();
            sFtpServer1.UserAccounts.Add(new SFtpUserAccountItem());
            sFtpServer1.UserAccounts[0].UserName = edtUserName.Text;
            sFtpServer1.UserAccounts[0].Password = edtPassword.Text;
            sFtpServer1.UserAccounts[0].RootDir  = edtUserRootDir.Text;
            if (!StringUtils.IsEmpty(sFtpServer1.UserAccounts[0].RootDir))
            {
                Directory.CreateDirectory(FileUtils.AddTrailingBackSlash(sFtpServer1.UserAccounts[0].RootDir));
            }

            SFtpServerPermissions permissions = SFtpServerPermissions.None;

            if (cbCanList.Checked)
            {
                permissions |= SFtpServerPermissions.List;
            }
            if (cbCanMakeDir.Checked)
            {
                permissions |= SFtpServerPermissions.MakeDir;
            }
            if (cbCanRemoveDir.Checked)
            {
                permissions |= SFtpServerPermissions.RemoveDir;
            }
            if (cbCanRead.Checked)
            {
                permissions |= SFtpServerPermissions.Read;
            }
            if (cbCanWrite.Checked)
            {
                permissions |= SFtpServerPermissions.Write;
            }
            if (cbCanRename.Checked)
            {
                permissions |= SFtpServerPermissions.Rename;
            }
            if (cbCanRemove.Checked)
            {
                permissions |= SFtpServerPermissions.Remove;
            }
            if (cbCanMakeLink.Checked)
            {
                permissions |= SFtpServerPermissions.MakeLink;
            }
            if (cbCanReadLink.Checked)
            {
                permissions |= SFtpServerPermissions.ReadLink;
            }
            sFtpServer1.UserAccounts[0].Permissions = permissions;

            //IP Blocking Tab
            serverGuard1.ConnectionLimit.Max    = Convert.ToInt32(edtAllowedConnections.Text);
            serverGuard1.ConnectionLimit.Period = 60000;             //1 minute
            serverGuard1.BlackIPList            = edtBlackList.Lines;
            serverGuard1.WhiteIPList            = edtWhiteList.Lines;
            serverGuard1.AllowWhiteListOnly     = cbWhiteListOnly.Checked;

            //SSH Algorithms Tab
            sFtpServer1.Config.SetConfig("kex", edtKexAlgs.Text);
            sFtpServer1.Config.SetConfig("hostkey", edtSignatureAlgs.Text);
            sFtpServer1.Config.SetConfig("cipher.s2c", edtEncryptionAlgs.Text);
            sFtpServer1.Config.SetConfig("cipher.c2s", edtEncryptionAlgs.Text);
            sFtpServer1.Config.SetConfig("mac.s2c", edtDataIntegrityAlgs.Text);
            sFtpServer1.Config.SetConfig("mac.c2s", edtDataIntegrityAlgs.Text);

            //Additional Settings Tab
            sFtpServer1.CharSet        = edtCharSet.Text;
            sFtpServer1.MaxReturnFiles = Convert.ToInt32(edtMaxReturnFiles.Text);
            sFtpServer1.BatchSize      = Convert.ToInt32(edtBatchSize.Text);
            sFtpServer1.MaxWindowSize  = Convert.ToInt32(edtMaxWindowSize.Text);
        }