PHP Seite in Visual Basic Programm einbinden (E-Mail Script)

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von rotherford.

    PHP Seite in Visual Basic Programm einbinden (E-Mail Script)

    Hallo zusammen,

    ich hatte mir letztens mit Visual Basic mal ein kleines Programm erstellt womit Freunde mir auf Knopfdruck mails schicken können. Nur leider kann man mit jedem x-beliebigem decompiler mein E-Mail Passwort sehen. Deswegen habe ich mir überlegt wie ich das Passwort verstecken kann und meine Idee war das ich mir einen PHP Seite erstelle wo die gleichen Funktionen und Buttons wie im Programm sind und das ich dann mit GET die Daten aus der Textbox per Mail verschicke, so dass ich ja mit meinen VB Programm theoretisch einfach nur die URL mit den GET Parametern aus den Textboxen vom VB Programm aufrufen muss und dann sofort die Mail über die Website verschickt wird. Meine Frage: Ist das möglich? Und wenn ja wie mache ich es das die URL dann praktisch nur im Hintergrund geöffnet wird damit nicht direkt der Browser starten muss? Oder gitb es eine einfachere Lösung Mails mit VB zu verschicken ohne das PW des Mail Accs zu zeigen?(und damit meinen ich nicht das PW crypten und dann in ner DLL speichern).

    Gruß,
    VBSkills
    Stichwort: WebClient

    Mit .UploadString() postest du deine Credentials & empfängst das Ergebnis.
    Bsp:

    VB.NET-Quellcode

    1. Dim URI As String = "http://www.myurl.com/send_email.php"
    2. Dim myParameters As String = "email=foo@hotmail.de&subject=foo&content=foo" 'usw.
    3. Using wc As New WebClient()
    4. wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
    5. Dim HtmlResult As String = wc.UploadString(URI, myParameters)
    6. 'Auswertung:
    7. if Boolean.Parse(HtmlResult) then
    8. Msgbox("Erfolgreich!")
    9. end if
    10. End Using


    Skript (Ansatz):

    PHP-Quellcode

    1. <?php
    2. //send_email.php
    3. $mail = $_POST['email'];
    4. //Weitere Parameter abfragen
    5. print @mail(..);
    6. ?>


    Edit => Wichtig: dein Skript muss natürlich auf einem php-fähigen Server liegen
    /nicht getestet
    Oke danke, ich hab das aber noch nich so ganz gecheckt... :D Also wenn ich jetzt einfach nur ein Programm mit zwei Textboxen für Betreff und Text und halt einen Abschicken Button habe wie sieht dann der COde der Datei und der des PHP Scripts aus? Weil das mit dem WebClient und dem Booelan.Parse hab ich nicht verstanden...
    php.net/manual/de/function.mail.php
    bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

    PHP-Quellcode

    1. <?php
    2. //send_email.php
    3. $content = $_POST['content'];
    4. $subject = $_POST['subject'];
    5. //Hier geben wir das Ergebnis des "Emailversands" aus [true/false]
    6. print @mail("deine_email@gmx.de",$subject,$content);
    7. ?>


    Das Boolean.Parse wertet einfach den Boolean, der von der Funktion mail() ausgegeben wird, aus.
    /nicht getestet
    Oke, aber mir funktioniert das alles iwie nicht. Wenn ich dem Code hier debugge:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Public Class Form1
    3. Private Sub submit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submit.Click
    4. Dim URI As String = "http://vbtests.funpic.de/test.php"
    5. Dim myParameters As String = "subject=bloo&content=foo"
    6. Using wc As New WebClient()
    7. wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
    8. Dim HtmlResult As String = wc.UploadString(URI, myParameters)
    9. 'Auswertung:
    10. If Boolean.Parse(HtmlResult) Then
    11. MsgBox("Erfolgreich!")
    12. End If
    13. End Using
    14. End Sub
    15. End Class


    Dann wird dieser Teil hier markiert:

    VB.NET-Quellcode

    1. If Boolean.Parse(HtmlResult) Then
    2. MsgBox("Erfolgreich!")
    3. End If

    und dann kommt so eine Meldung das FormatException nicht behandelt wurde und das die Zeichenfolge nicht als gültiger Boolean erkannt wurde.

    Und außerdem was bedeutet dieses

    VB.NET-Quellcode

    1. wc.Headers(HttpRequestHeader.ContentType) = "application/x-www-form-urlencoded"
    ??

    Hier nochmal der PHP Code dazu:

    PHP-Quellcode

    1. <?php
    2. $content = $_POST['content'];
    3. $subject = $_POST['subject'];
    4. print @mail("tilljoscha@gmail.com",$subject,$content);
    5. ?>
    habe jetzt das print und das @ weggemacht da ich eh keine Ahnung habe wo der Unterschied ist wenn ichs benuzte und wenn nicht... Ich habe eben auch meine Mails nahcgeguckt und das ganze funktioniert jetzt also wenn ich auf abschicken drücke schickt er die Mail auch ab nur das dann die Fehlermeldung die ich eben beschrieben habe kommt und das dann halt nicht die Message Box mit "Erfolgreich" erscheint... Woran liegt das?
    Kein Wunder, durch das Entfernen von print hast du die Ausgabe des Rückgabewerts entfernt.
    Pack ein echo statt eines prints davor, lass aber trotzdem das @ weg. Überprüfe im Programm mit Boolean.TryParse, ob der Rückgabewert ein Boolean ist, und wenn nicht, verarbeite die Fehlermeldung im Programm.

    VBSkills schrieb:

    Und außerdem was bedeutet dieses

    Also wenn ich sowas nicht weiß, google ich es einfach..
    Mit dem MIME-Typ „application/x-www-form-urlencoded“ können URL-kodierte Daten gekennzeichnet werden. Bei der Übermittlung von Web-Formularangaben mittels der POST-Methode wird dieser MIME-Typ als Inhaltstyp (Content-Type) angegeben ; gelegentlich auch mit expliziter Kodierung: "application/x-www-form-urlencoded; charset: UTF-8".

    (wikipedia)
    /nicht getestet