Fehler beim Senden einer E-Mail

  • VB.NET
  • .NET 4.5

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Bartosz.

    Fehler beim Senden einer E-Mail

    Hi,
    ich habe mir nach einiger Suchzeit bei Stackoverflow Code kopiert. Nun gibt eine Fehlermeldung (siehe Bild).
    Ich bitte um Nachsicht, Internetprogrammierung ist ziemlich neu für mich.

    mit

    VB.NET-Quellcode

    1. Public NotInheritable Class Form_Main
    2. Private Const MailFrom As String = "Adresse_von_der_die_Email_kommt@...de"
    3. Private Const MailTo As String = "an_welche_Adresse_es_geht@...de" ' (mein gmail)
    4. Private Const username As String = ".. @..de" ' ebenso meine Gmail-Adresse
    5. Private Const MailSubject As String = "Subject"
    6. Private Const MailText As String = "automatische E-Mail"
    7. Private Const _SmtpServerPort As Integer = 465
    8. Private Const _SmtpServerHost As String = "smtp.gmail.com"
    9. Private Const Password As String = "meinPasswort"


    VB.NET-Quellcode

    1. Private Sub senden()
    2. Using SmtpServer As New Net.Mail.SmtpClient()
    3. Using mail As New MailMessage()
    4. SmtpServer.UseDefaultCredentials = False
    5. SmtpServer.Credentials = New Net.NetworkCredential(username, Password)
    6. SmtpServer.Port = _SmtpServerPort
    7. SmtpServer.Host = _SmtpServerHost
    8. SmtpServer.EnableSsl = True
    9. SmtpServer.DeliveryMethod = SmtpDeliveryMethod.Network
    10. 'mail = New MailMessage()
    11. mail.From = New MailAddress(MailFrom)
    12. mail.To.Add(MailTo)
    13. mail.Subject = MailSubject
    14. mail.Body = MailText
    15. SmtpServer.Send(mail)
    16. End Using
    17. End Using
    18. End Sub



    Edit: Mittlerweile habe ich hier Code gefunden und den Port zu 587 geändert. Jetzt bekomme ich eine andere Exception. Außerdem habe ich auf mein Smartphone die Nachricht von Gmail bekommen, dass ein Anmeldeversuch verhindert wurde.

    System.Net.Mail.SmtpException: "Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: 5.7.0 Authentication Required. Learn more at"


    VB.NET-Quellcode

    1. Using Emailantwort As New MailMessage
    2. Using SmtP As New SmtpClient(_SmtpServerHost)
    3. SmtP.UseDefaultCredentials = False
    4. Emailantwort.From = New MailAddress(MailFrom)
    5. Emailantwort.To.Add(MailTo)
    6. Emailantwort.Subject = MailSubject
    7. Dim enc As System.Text.Encoding = New System.Text.UTF8Encoding
    8. Emailantwort.BodyEncoding = enc
    9. Emailantwort.Body = MailText
    10. 'Emailantwort.Attachments.Add((New System.Net.Mail.Attachment(Anhangpfad)))
    11. Emailantwort.IsBodyHtml = True
    12. SmtP.Port = _SmtpServerPort
    13. SmtP.EnableSsl = True
    14. SmtP.Credentials = New System.Net.NetworkCredential(username, Password)
    15. SmtP.Send(Emailantwort)
    16. End Using
    17. End Using

    Bilder
    • Screenshot 2021-03-01 181846.png

      109,87 kB, 1.465×538, 29 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Bartosz“ ()

    @ErfinderDesRades Naja, mit unbenutzbar hast du Recht... Und was nu? Selbst die Leute bei Stackoverflow sagen, das muss man so machen. Und von Web.de aus senden bringt auch nichts. Dort muss man ebenso weniger sichere Apps zulassen.
    An die Neulinge: Nutzt Option Strict On und Option Infer Off. Dadurch kommt ihr mit Datentypumwandlungen nicht durcheinander und der Code verbessert sich um Einiges! Solche Fehler à la Dim Beispiel As Integer = "123" können nicht mehr passieren.
    Hab das seinerzeit mit meiner Mailadresse bei Googlemail auch machen müssen. Hab bis heute keine Probleme. Versende aber auch keine Mails mehr mit selbst programmierter Software, das war damals nur ne Fingerübung.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen