Example #1
0
        /// <summary>
        /// Creates and starts an instance of SimpleSmtpServer that will listen on a specific port.
        /// </summary>
        /// <param name="port">port number the server should listen to</param>
        /// <returns>The <see cref="SimpleSmtpServer">SmtpServer</see> waiting for message</returns>
        public static SimpleSmtpServer Start(int port)
        {
            SimpleSmtpServer server = new SimpleSmtpServer(port);

            Thread smtpServerThread = new Thread(new ThreadStart(server.Run));

            smtpServerThread.Start();

            // Block until the server socket is created
            try
            {
                server.startedEvent.WaitOne();
            }
            catch
            {
                // Ignore don't care.
            }

            // If an exception occured during server startup, send it back.
            if (server.mainThreadException != null)
            {
                throw server.mainThreadException;
            }

            return(server);
        }
Example #2
0
 static void Main(string[] args)
 {
     SimpleSmtpServer server= new SimpleSmtpServer();
     server.Start();
     while(true)
     {
         if (server.ReceivedEmailCount > 0)
         {
             foreach(SmtpMessage message in server.ReceivedEmail)
             {
                 Console.WriteLine("----------------------------------------------------------------");
                 Console.WriteLine();
                 Console.WriteLine(message.ToString());
             }
             server.ClearReceivedEmail();
         }
         Thread.Sleep(100);
     }
 }
Example #3
0
 public void SetUp()
 {
     _server = SimpleSmtpServer.Start();
 }
Example #4
0
 public MailServiceTests()
 {
     _server = null;
 }
 public void Initialize()
 {
     // Initialise smtpServer with a running one.
     // Note that this is running on localhost port 25 by default.
     smtpServer = SimpleSmtpServer.Start();
 }
 public override void Stop()
 {
     logger.Info("Stopping SMTP Server on port {0}", _port);
     base.Stop ();
     if (_smtpServer != null)
     {
         _smtpServer.Stop();
         _smtpServer = null;
     }
 }
 public override void Start()
 {
     logger.Info("Starting SMTP server on port {0}", _port);
     _smtpServer = SimpleSmtpServer.Start(_port);
     base.Start ();
 }
 public SimpleSmtpServerTests()
 {
     server = null;
     server2 = null;
 }
        public void MultipleServerPort()
        {
            int ALT_PORT = 2525;

            // Start second server
            server2 = new SimpleSmtpServer(ALT_PORT);
            server2.Start();

            // Send to first server
            System.Web.Mail.SmtpMail.SmtpServer = "localhost";
            System.Web.Mail.SmtpMail.Send("*****@*****.**", "*****@*****.**", "This is the subject", "This is the body.");

            // Send to second server
            MailMessage mail = new MailMessage();
            mail.To = "*****@*****.**";
            mail.From = "*****@*****.**";
            mail.Subject = "This is the second subject";
            mail.Body = "This is the second body.";
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", ALT_PORT.ToString());
            SmtpMail.Send(mail);

            // Check first server
            Assert.AreEqual(1, server.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(1, server.ReceivedEmailCount, "server.ReceivedEmailSize");

            SmtpMessage email =  server.ReceivedEmail[0];

            Assert.AreEqual("<*****@*****.**>", email.Headers["To"]);
            Assert.AreEqual("<*****@*****.**>", email.Headers["From"]);

            Assert.AreEqual("text/plain;", email.Headers["Content-Type"]);

            Assert.AreEqual("This is the subject", email.Headers["Subject"]);
            Assert.AreEqual("This is the body.", email.Body);

            // Check second server
            Assert.AreEqual(1, server2.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(1, server2.ReceivedEmailCount, "server.ReceivedEmailSize");

            SmtpMessage email1 =  server2.ReceivedEmail[0];

            Assert.AreEqual("<*****@*****.**>", email1.Headers["To"]);
            Assert.AreEqual("<*****@*****.**>", email1.Headers["From"]);

            Assert.AreEqual("text/plain;", email1.Headers["Content-Type"]);

            Assert.AreEqual("This is the second subject", email1.Headers["Subject"]);
            Assert.AreEqual("This is the second body.", email1.Body);
        }
        public void MultipleServerPortSimple()
        {
            int ALT_PORT = 2525;

            // Start second server
            server2 = SimpleSmtpServer.Start(ALT_PORT);

            // Send to first server
            System.Web.Mail.SmtpMail.SmtpServer = "localhost";
            System.Web.Mail.SmtpMail.Send("*****@*****.**", "*****@*****.**", "This is the subject", "This is the body.");

            // Check first server
            Assert.AreEqual(1, server.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(1, server.ReceivedEmailCount, "server.ReceivedEmailSize");

            SmtpMessage email =  server.ReceivedEmail[0];

            Assert.AreEqual("<*****@*****.**>", email.Headers["To"]);
            Assert.AreEqual("<*****@*****.**>", email.Headers["From"]);

            Assert.AreEqual("text/plain;", email.Headers["Content-Type"]);

            Assert.AreEqual("This is the subject", email.Headers["Subject"]);
            Assert.AreEqual("This is the body.", email.Body);

            // Check second server
            Assert.AreEqual(0, server2.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(0, server2.ReceivedEmailCount, "server.ReceivedEmailSize");
        }
 protected void setUp()
 {
     server = new SimpleSmtpServer();
     server.Start();
     server2 = null;
 }
        public void ServerBindingError()
        {
            // Server is already running. We check that this cause an SocketException to be thrown
            SimpleSmtpServer server2 = new SimpleSmtpServer();
            server2.Start();

            Assert.Fail("BindingError");
        }
        public void StopStartServer()
        {
            System.Web.Mail.SmtpMail.SmtpServer = "localhost";
            System.Web.Mail.SmtpMail.Send("*****@*****.**", "*****@*****.**", "This is the subject", "This is the body.");

            Assert.AreEqual(1, server.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(1, server.ReceivedEmailCount, "server.ReceivedEmailSize");

            SmtpMessage email1 =  server.ReceivedEmail[0];

            Assert.AreEqual("<*****@*****.**>", email1.Headers["To"]);
            Assert.AreEqual("<*****@*****.**>", email1.Headers["From"]);

            Assert.AreEqual("text/plain;", email1.Headers["Content-Type"]);

            Assert.AreEqual("This is the subject", email1.Headers["Subject"]);
            Assert.AreEqual("This is the body.", email1.Body);

            server.Stop();
            server = SimpleSmtpServer.Start();

            System.Web.Mail.SmtpMail.Send("*****@*****.**", "*****@*****.**", "This is the second subject", "This is the second body.");

            Assert.AreEqual(1, server.ReceivedEmail.Length, "server.ReceivedEmail.Length");
            Assert.AreEqual(1, server.ReceivedEmailCount, "server.ReceivedEmailSize");

            SmtpMessage email2 =  server.ReceivedEmail[0];

            Assert.AreEqual("<*****@*****.**>", email2.Headers["To"]);
            Assert.AreEqual("<*****@*****.**>", email2.Headers["From"]);

            Assert.AreEqual("text/plain;", email2.Headers["Content-Type"]);

            Assert.AreEqual("This is the second subject", email2.Headers["Subject"]);
            Assert.AreEqual("This is the second body.", email2.Body);
        }
Example #14
0
        /// <summary>
        /// Creates and starts an instance of SimpleSmtpServer that will listen on a specific port.
        /// </summary>
        /// <param name="port">port number the server should listen to</param>
        /// <returns>The <see cref="SimpleSmtpServer">SmtpServer</see> waiting for message</returns>
        public static SimpleSmtpServer Start(int port)
        {
            SimpleSmtpServer server = new SimpleSmtpServer(port);

            Thread smtpServerThread = new Thread(new ThreadStart(server.Run));
            smtpServerThread.Start();

            // Block until the server socket is created
            try
            {
                server.startedEvent.WaitOne();
            }
            catch
            {
                // Ignore don't care.
            }

            // If an exception occured during server startup, send it back.
            if (server.mainThreadException != null)
                throw server.mainThreadException;

            return server;
        }