Email will nicht gesendet werden

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ThuCommix.

    Email will nicht gesendet werden

    Hey leute,

    hab mir also 2 textboxen erstellt und nen absendebutton.
    beim absenden soll der inhalt an meine email gesendet werden jedoch scheine ich irgendwie schwierigkeiten bei der verbindung des servers zu haben, was ich nicht verstehe. habt ihr ne ahnung wie ich das behebe?

    FEHLMELDUNG:Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: Must issue a STARTTLS command first




    VB.NET-Quellcode

    1. Imports System.Net.WebRequestMethods
    2. Imports System.Net.Mail
    3. Imports System.Net
    4. Public Class Form1
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. End Sub
    7. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    8. Dim text As String
    9. text = TextBox1.Text & TextBox2.Text + vbLf
    10. Dim myClient As New Net.Mail.SmtpClient("smtp.web.de")
    11. myClient.Credentials = New NetworkCredential("meine email", "pw")
    12. myClient.Send("meinemail@web.de", "meinemail", "Message", text)
    13. If TextBox1.Text = "" Then
    14. MessageBox.Show("Bitte Texteld 1 ausfüllen")
    15. Return
    16. End If
    17. If TextBox2.Text = "" Then
    18. MessageBox.Show("Bitte Textfeld 2 ausfüllen")
    19. Return
    20. End If
    21. MessageBox.Show("Fertich.")
    22. End Sub
    23. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    24. End Sub
    25. Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
    26. End Sub
    27. End Class


    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    C&P wird hier nicht gerne gesehen, da Du selber lernen sollst und nicht einfach Code kopierst, ohne ihn zu verstehen. Von daher muss natürlich Eigeninitiative an den Tag gelegt werden. ;)
    Ich sage zu dem Thema nur: Dafür würde ich PHP benutzen. Das benötigt keine Credentials und ist ein guter Weg.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Hey,
    hast du evtl Win10? Wenn ja bei mir ging web.de auch nicht frag mich nicht wieso... Versuch es evtl mal mit gmx.de da hat es bei mir mit Win10 geklappt und du musst natürlich die Ssl auf True stellen und den Port angeben der ist Standard "587" dann muss es gehen :) Und dein Code ist ziemlich unsauber solltest du auch mal dran arbeiten ^^

    Hier der Code: aber bitte nicht einfach c&p <.<

    VB.NET-Quellcode

    1. Imports System.Net.Mail
    2. Dim MyEmail As New MailMessage
    3. Try
    4. MyEmail.From = New MailAddress("mail")
    5. MyEmail.To.Add("mail")
    6. MyEmail.Subject = 'Hier wie der Title von der Mail sein soll zb: TextBox1.Text
    7. MyEmail.Body = 'Hier kommen deine textboxen hin zb so: TextBox1.Text, TextBox2.Text
    8. 'SMTP Client
    9. Dim smtp As New SmtpClient("smtp.gmx.de")
    10. smtp.Port = 587
    11. smtp.EnableSsl = True
    12. smtp.Credentials = New System.Net.NetworkCredential("mail", "pw")
    13. smtp.Send(MyEmail)
    14. MsgBox("Connection lost")
    15. Catch ex As Exception
    16. MsgBox("Fehler aufgetreten!!!")
    17. End Try
    Diese Art von Try Catch ohne irgendeine Fehlerbehandlung ist fahrlässig.
    Hier wird der eigentliche Fehler beim entstehen verschleiert, es kommt ebenfalls eine Fehlermeldung und man erkennt nicht mehr welche es denn nun ist.
    Also entweder Fehler behandeln oder es lassen.
    Aber Nur
    Try
    irgendwas
    Catch
    Meldung schlucken
    ist ein Unding.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Trade schrieb:

    C&P wird hier nicht gerne gesehen, da Du selber lernen sollst und nicht einfach Code kopierst, ohne ihn zu verstehen. Von daher muss natürlich Eigeninitiative an den Tag gelegt werden. ;)
    Ich sage zu dem Thema nur: Dafür würde ich PHP benutzen. Das benötigt keine Credentials und ist ein guter Weg.

    Grüße


    Also ich hab Win7, aber dein Code hat funktioniert :) Tatsächlich lag es an web.de, habe es bei meinem Code zwar nicht probiert mit nem anderen Anbieter, aber es funktioniert.
    Vielen Dank.
    Und zu denen die meinen lern es selber blbabla. Beruhight euch doch mal bisschen. Ich bin Student und ich lerne gerade erst Java. Das Formular war einfach nur nötig für mich.

    Schönen Abend noch
    Falsch zitiert? ;)
    Das ist ja gut und recht, aber dennoch soll man es ja selber lernen, das ist der Sinn. Aber gut, Du weißt am Besten, was Du machen willst und dann passt das schon. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

    Trade schrieb:

    Dafür würde ich PHP benutzen.
    Ernsthaft?
    Um einen Mail-Client zu realisieren würdest du dich von einem PHP-Server abhängig machen.
    Gut, wenn du eh einen Server im Netz hängen hast, ist das ein gangbarer Weg.

    Ich gehe jetzt nicht davon aus, dass der TE sein Programm weltweit verteilen will, sondern vermute eine private Nutzung.
    Da sehe ich keinen Grund, weshalb man da einen Server zwischenschalten sollte.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --