KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have an SMTP listener that works well but is only able to receive one connection. My C# code is below and I am running it as a service. My goal is to have it runnign on a server and parsing multiple smtp messages sent to it. currently it parses the first message and stops working. how can I get it to accept the 2nd, 3rd, 4th... SMTP message and process it like it does the first? here is my code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; using System.IO; namespace SMTP_Listener { class Program { static void Main(string[] args) { TcpListener listener = new TcpListener(IPAddress.Any , 8000); TcpClient client; NetworkStream ns; listener.Start(); Console.WriteLine("Awaiting connection..."); client = listener.AcceptTcpClient(); Console.WriteLine("Connection accepted!"); ns = client.GetStream(); using (StreamWriter writer = new StreamWriter(ns)) { writer.WriteLine("220 localhost SMTP server ready."); writer.Flush(); using (StreamReader reader = new StreamReader(ns)) { string response = reader.ReadLine(); if (!response.StartsWith("HELO") && !response.StartsWith("EHLO")) { writer.WriteLine("500 UNKNOWN COMMAND"); writer.Flush(); ns.Close(); return; } string remote = response.Replace("HELO", string.Empty).Replace("EHLO", string.Empty).Trim(); writer.WriteLine("250 localhost Hello " + remote); writer.Flush(); response = reader.ReadLine(); if (!response.Star
Tags (comma-separated)
Save Edits
Cancel