SMTP-Protokoll auswerten

  • VB.NET
  • .NET (FX) 4.5–4.8

    SMTP-Protokoll auswerten

    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.

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.Net
    4. Imports System.Net.Sockets
    5. Imports System.Text
    6. Imports Microsoft.VisualBasic
    7. Public Class Form2
    8. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    9. Dim server As TcpListener
    10. server = Nothing
    11. Try
    12. Dim port As Int32 = 25
    13. Dim localAdr As IPAddress = IPAddress.Any
    14. server = New TcpListener(localAdr, port)
    15. server.Start()
    16. Dim bytes(1024) As Byte
    17. Dim data As String = Nothing
    18. While True
    19. ListBox1.Items.Add("Warte auf eine Verbindung....")
    20. Me.Refresh()
    21. Dim client As TcpClient = server.AcceptTcpClient()
    22. ListBox1.Items.Add("Verbindung hergestellt")
    23. Me.Refresh()
    24. data = Nothing
    25. Dim stream As NetworkStream = client.GetStream()
    26. Dim streamR As StreamReader
    27. streamR = New StreamReader(stream)
    28. Dim i As Int32
    29. i = stream.Read(bytes, 0, bytes.Length)
    30. Dim meiner = streamR.ReadLine.ToString
    31. ListBox1.Items.Add(meiner)
    32. While (i <> 0)
    33. data = System.Text.Encoding.ASCII.GetString(bytes, 0, i)
    34. ListBox1.Items.Add("Empfangen: " & data)
    35. Me.Refresh()
    36. i = stream.Read(bytes, 0, bytes.Length)
    37. End While
    38. client.Close()
    39. End While
    40. Catch ex As Exception
    41. ListBox1.Items.Add("SocketFehler: " & e.ToString)
    42. Me.Refresh()
    43. Finally
    44. server.Stop()
    45. End Try
    46. End Sub
    47. 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