Ejemplo n.º 1
0
        public void SetupSSLCertificateWithPassword()
        {
            string sslPath = Path.Combine(SslSetup.GetSslCertPath(), "WithPassword");

            SSLCertificate sslCertificate = _application.Settings.SSLCertificates.Add();

            sslCertificate.Name            = "Example";
            sslCertificate.CertificateFile = sslPath + "\\server.crt";
            sslCertificate.PrivateKeyFile  = sslPath + "\\server.key";
            sslCertificate.Save();

            TCPIPPort port = _application.Settings.TCPIPPorts.Add();

            port.Address          = "0.0.0.0";
            port.PortNumber       = 251;
            port.UseSSL           = true;
            port.SSLCertificateID = sslCertificate.ID;
            port.Protocol         = eSessionType.eSTSMTP;
            port.Save();

            _application.Stop();
            _application.Start();

            CustomAsserts.AssertReportedError("The private key file has a password. hMailServer does not support this.",
                                              "Failed to load private key file.");

            SingletonProvider <TestSetup> .Instance.PerformBasicSetup();
        }
Ejemplo n.º 2
0
        public void SmtpServerSupportingStartTls_StartTlsOptional()
        {
            Account account = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test");

            // Set up a server listening on port 250 which accepts email for [email protected]
            var deliveryResults = new Dictionary <string, int>();

            deliveryResults["*****@*****.**"] = 250;

            int smtpServerPort = TestSetup.GetNextFreePort();

            using (var server = new SMTPServerSimulator(1, smtpServerPort, eConnectionSecurity.eCSSTARTTLSRequired))
            {
                server.SetCertificate(SslSetup.GetCertificate());
                server.AddRecipientResult(deliveryResults);
                server.StartListen();

                Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, true, eConnectionSecurity.eCSSTARTTLSOptional);

                var smtpClient = new SMTPClientSimulator();
                CustomAssert.IsTrue(smtpClient.Send(account.Address, "*****@*****.**", "Test", "Test message"));

                TestSetup.AssertRecipientsInDeliveryQueue(0);

                server.WaitForCompletion();

                CustomAssert.IsTrue(server.MessageData.Contains("Test message"));
            }
        }
Ejemplo n.º 3
0
        public void SmtpServerNOTSupportingStartTls_StartTlsRequired()
        {
            Account account = SingletonProvider <TestSetup> .Instance.AddAccount(_domain, "*****@*****.**", "test");

            // Set up a server listening on port 250 which accepts email for [email protected]
            var deliveryResults = new Dictionary <string, int>();

            deliveryResults["*****@*****.**"] = 250;

            int smtpServerPort = TestSetup.GetNextFreePort();

            using (var server = new SMTPServerSimulator(1, smtpServerPort, eConnectionSecurity.eCSNone))
            {
                server.SetCertificate(SslSetup.GetCertificate());
                server.AddRecipientResult(deliveryResults);
                server.StartListen();

                Route route = SMTPClientTests.AddRoutePointingAtLocalhost(1, smtpServerPort, true, eConnectionSecurity.eCSSTARTTLSRequired);

                var smtpClient = new SMTPClientSimulator();
                CustomAssert.IsTrue(smtpClient.Send(account.Address, "*****@*****.**", "Test", "Test message"));

                TestSetup.AssertRecipientsInDeliveryQueue(0);

                // This should now be processed via the rule -> route -> external server we've set up.
                server.WaitForCompletion();

                var msg = POP3ClientSimulator.AssertGetFirstMessageText("*****@*****.**", "test");

                CustomAssert.IsTrue(msg.Contains("Server does not support STARTTLS"));
            }
        }
Ejemplo n.º 4
0
        private void SetSslVersions(bool sslv3, bool tlsv10, bool tlsv11, bool tlsv12)
        {
            SslSetup.SetupSSLPorts(_application, new SslVersions()
            {
                Ssl30 = sslv3,
                Tls10 = tlsv10,
                Tls11 = tlsv11,
                Tls12 = tlsv12
            });

            Thread.Sleep(1000);
        }
Ejemplo n.º 5
0
        private void SetSslVersions(bool tlsv10, bool tlsv11, bool tlsv12, bool tlsv13)
        {
            SslSetup.SetupSSLPorts(_application, new SslVersions()
            {
                Tls10 = tlsv10,
                Tls11 = tlsv11,
                Tls12 = tlsv12,
                Tls13 = tlsv13
            });

            Thread.Sleep(1000);
        }
Ejemplo n.º 6
0
        public new void TestFixtureSetUp()
        {
            SslSetup.SetupSSLPorts(_application);

            Thread.Sleep(1000);
        }