Hallo zusammen,
ich möchte gerne einen Mailserver programmieren. Hab mich auch schon in das Thema Netzwerkkommunikation, Portüberwachung, eMail senden und empfangen, usw. eingelesen. Habe mir bis dato diesen Code zusammen gestickt.
Er funzt eigentlich schon so weit, dass, wenn ich auf den Button klicke, der Server gestartet wird und auf eine Verbindung wartet. Wenn ich eine Mail von meinem Mailprogramm abschicke, wird auch die Verbindung erkannt. Allerdings, dann ist Schluß. Leider werden mir keinerlei Daten angezeigt, die ich dann auswerten und dementsprechend weiter verarbeiten kann und die eingehende eMail in den ensprechenden Ordner zum Senden abspeichern kann.
Vielleicht ist auch mein Ansatz falsch und in einer falschen Richtung angesetzt. Wie gesagt, ich habe viel in den Foren gelesen und auch gegoogelt. Kann also leicht sein, dass ich den Weg verlassen habe oder ihn auch nicht mehr sehe.
Vielleicht kann mir einer eine Hilfestellung geben oder mich wieder auf den rechten Weg führen.
Vielen Dank schon mal für Eure Gedankenanstösse.
Gruß Zaunkonig
ich möchte gerne einen Mailserver programmieren. Hab mich auch schon in das Thema Netzwerkkommunikation, Portüberwachung, eMail senden und empfangen, usw. eingelesen. Habe mir bis dato diesen Code zusammen gestickt.
VB.NET-Quellcode
- Imports System
- Imports System.IO
- Imports System.Net
- Imports System.Net.Sockets
- Imports System.Text
- Imports Microsoft.VisualBasic
- Public Class Form2
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim server As TcpListener
- server = Nothing
- Try
- Dim port As Int32 = 25
- Dim localAdr As IPAddress = IPAddress.Any
- server = New TcpListener(localAdr, port)
- server.Start()
- Dim bytes(1024) As Byte
- Dim data As String = Nothing
- While True
- ListBox1.Items.Add("Warte auf eine Verbindung....")
- Me.Refresh()
- Dim client As TcpClient = server.AcceptTcpClient()
- ListBox1.Items.Add("Verbindung hergestellt")
- Me.Refresh()
- data = Nothing
- Dim stream As NetworkStream = client.GetStream()
- Dim streamR As StreamReader
- streamR = New StreamReader(stream)
- Dim i As Int32
- i = stream.Read(bytes, 0, bytes.Length)
- Dim meiner = streamR.ReadLine.ToString
- ListBox1.Items.Add(meiner)
- While (i <> 0)
- data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
- ListBox1.Items.Add("Empfangen: " & data)
- Me.Refresh()
- i = stream.Read(bytes, 0, bytes.Length)
- End While
- client.Close()
- End While
- Catch ex As Exception
- ListBox1.Items.Add("SocketFehler: " & e.ToString)
- Me.Refresh()
- Finally
- server.Stop()
- End Try
- End Sub
- End Class
Er funzt eigentlich schon so weit, dass, wenn ich auf den Button klicke, der Server gestartet wird und auf eine Verbindung wartet. Wenn ich eine Mail von meinem Mailprogramm abschicke, wird auch die Verbindung erkannt. Allerdings, dann ist Schluß. Leider werden mir keinerlei Daten angezeigt, die ich dann auswerten und dementsprechend weiter verarbeiten kann und die eingehende eMail in den ensprechenden Ordner zum Senden abspeichern kann.
Vielleicht ist auch mein Ansatz falsch und in einer falschen Richtung angesetzt. Wie gesagt, ich habe viel in den Foren gelesen und auch gegoogelt. Kann also leicht sein, dass ich den Weg verlassen habe oder ihn auch nicht mehr sehe.
Vielleicht kann mir einer eine Hilfestellung geben oder mich wieder auf den rechten Weg führen.
Vielen Dank schon mal für Eure Gedankenanstösse.
Gruß Zaunkonig