Email senden directSLL auf Port 465

  • VB.NET
  • .NET (FX) 4.0

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von ThomasD.

    Email senden directSLL auf Port 465

    Hallo Leute,

    ich habe vor mehrere Jahren ein Programm geschrieben, welcher Daten per Email versendet hat über System.Net.Mail.

    Jetzt nach der Umstellung von T-Online und Web.de funktioniert das Programm nicht mehr zusammen mit T-Online Emailserver.
    Mit Arcor funktioniert es noch.

    Laut Aussage von MS (social.msdn.microsoft.com/Foru…icken?forum=visualbasicde) wird das wohl so auch nicht mehr gehen.

    Ich hatte mir Testweise die 6 Monatige Testversion von EASendMail SMTP (emailarchitect.net/easendmail/) installiert. Da hat dann wieder der Emailversand per directSLL geklappt. Das Problem ist aber nur, dass die Erweiterung 99 US-$ kostet und sich der Einsatz für mein Programm (da Freeware) sich somit nicht rechnet.

    Gibt es sonst noch (kostengünstigere / Kostenlose) Alternativen um doch noch Emails mit T-Online und Co versenden zu können?
    Tja nur können sich das nicht alle aussuchen. T-Online hat doch jetzt umgestellt auf verschlüsselte Emails über Port 465, soweit ich weiß

    Ich hab folgenden Code getestet

    VB.NET-Quellcode

    1. Imports System.Net.Mail
    2. Public Class Form1
    3. Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    4. ' Neues MailMessage-Objekt mit Absender und
    5. ' Empfänger-Adresse erstellen
    6. Dim oMail As New MailMessage("XXXXX@t-online.de", "XXXXXX@t-online.de")
    7. ' SMTP-Server
    8. Dim oSMTP As New SmtpClient
    9. With oSMTP
    10. ' Mailserver
    11. .Host = "smtpmail.t-online.de"
    12. .Port = "465"
    13. .EnableSsl = True
    14. ' Erweiterte Mail-Einstellungen
    15. .UseDefaultCredentials = False
    16. .DeliveryMethod = SmtpDeliveryMethod.Network
    17. ' SMTP-AUTH mit UserName und Kennwort
    18. .Credentials = New Net.NetworkCredential("XXXX@t-online.de", "XXXXX")
    19. End With
    20. With oMail
    21. ' Betreff
    22. .Subject = "Wetterwarnung - Test-Nachricht"
    23. ' Nachricht (kein HTML)
    24. .IsBodyHtml = False
    25. .Body = "Dies ist eine Test-Nachricht"
    26. ' Priorität einstellen
    27. .Priority = MailPriority.Normal
    28. End With
    29. Try
    30. ' Nachricht senden
    31. oSMTP.Send(oMail)
    32. MsgBox("Nachricht wurde versandt.")
    33. Catch oEx As Exception
    34. MsgBox("Fehler: " & oEx.Message.ToString & vbCrLf)
    35. End Try
    36. End Sub
    37. End Class


    und folgende Fehlermeldung

    Fehler: Fehler beim Senden von Mail.
    System.IO.IOException: Von der Übertragungsverbindung können keine Daten gelesen werden: net_io_connectionclosed.
    bei System.Net.Mail.SmtpReplyReaderFactory.ProcessRead (Byte[] buffer, Int32 offset, Int32 read, Boolean readLine)
    bei System.Net.Mail.SmtpReplyReaderFactory.ReadLines(S mtpReplyReader caller, Boolean oneLine)
    bei System.Net.Mail.SmtpReplyReaderFactory.ReadLine(Sm tpReplyReader caller)
    bei System.Net.Mail.SmtpConnection.GetConnection(Servi cePoint servicePoint)
    bei System.Net.Mail.SmtpTransport.GetConnection(Servic ePoint servicePoint)
    bei System.Net.Mail.SmtpClient.GetConnection()
    bei System.Net.Mail.SmtpClient.Send(MailMessage message)


    Gruß
    Gerhard

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „blinky27“ ()

    kommunikationsdienste.t-online…g/anleitungen/andere.html

    Dort heißt es:


    Ändern Sie die Serveranschlussnummer (Port) für den Postausgangsserver.

    Stellen Sie für den Postausgangsserver (SMTP) den Port (Serveranschlussnummer) auf 465 (mit SSL).



    Je nach E-Mail-Programm muss beim Postausgang noch die Authentifizierung aktiviert werden.






    Wenn als Postausgangsserver bisher "smtp.t-online.de" oder "mailto.t-online.de" eingetragen ist, nehmen Sie bitte folgende Änderungen vor:







    Tragen Sie als Postausgangsserver (SMTP) "securesmtp.t-online.de" ein
    Aktivieren Sie die SSL-Verschlüsselung
    Tragen Sie folgenden Wert als Port ein: 465

    Bitte geben Sie als Kennwort das
    E-Mail-Passwort ein und setzen Sie den Haken bei "Kennwort speichern".
    Das
    E-Mail-Passwort ist nicht identisch
    mit dem Passwort, dass Sie für den Zugriff auf das E-Mail Center,
    Mediencenter,
    Kundencenter und andere Web-Dienste
    verwenden. Falls Sie das E-Mail-Passwort noch nicht eingerichtet haben,
    tun
    Sie dies bitte im Kundencenter.


    Mit securesmtp.t-online.de hab ich auch schon probiert.

    Da erhalte ich die Meldung

    Fehler: Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: 5.7.0 Authentication required.

    Vielen Dank für deine Hilfe.

    Nachdem ich den Emailserver bei T-Online geändert habe und die Firewall-Einstellungen zurückgesetzt habe, läuft es jetzt. Dann kann ich jetzt in mein Programm einbauen.

    Muss dann wohl Hinweis reinsetzen in mein Programm, dass abweichend von der Anleitung von der Telekom nicht der Port 465 verwendet werden darf.
    kannst Du mir auch bitte veraten wie ich das anstellen kann.

    Warum klappt es dann in der Entwicklungsumgebung, aber nicht ausserhalb?

    Ein User des Programms hat es mit Web.de getestet. Er kann wieder Emails über das Programm versenden. Alle die T-Online verwenden nicht (ausser ich in der Entwicklerumgebung)
    Danke für deine Hilfe. Nach langen Suchen hab ich die Lösung gefunden.

    Ich habe das Zertifikat runter geladen und eingebunden

    VB.NET-Quellcode

    1. Dim Cert_TOnline As New System.Security.Cryptography.X509Certificates.X509Certificate(Application.StartupPath & "\deutsche-telekom-root-ca-2.crt")
    2. .ClientCertificates.Add(Cert_TOnline)