Kontakt-Formular in Silverlight

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Kontakt-Formular in Silverlight

    Hallo allerseits,
    ich bin letztens beim Erstellen eines Kontakt-Formulars auf ein Problem gestoßen, und zwar unterstützt Silverlight den Namespace "System.Net.Mail" nicht.

    VB.NET-Quellcode

    1. Dim mail As New MailMessage()
    2. mail.From = New MailAddress("do-not-reply-service@domain.de")
    3. mail.[To].Add("service@domain.de")
    4. mail.Subject = txt_betreff.Text
    5. mail.Body = txt_anliegen.Text
    6. Dim client As SmtpClient = New SmtpClient("smtp.domain.de", 25)
    7. Try
    8. client.Credentials = New System.Net.NetworkCredential("do-not-reply-service@domain.de", "admin1234")
    9. client.EnableSsl = True
    10. client.Send(mail)
    11. Catch
    12. MessageBox.Show("Ein Fehler ist beim Senden aufgetreten!")
    13. End Try


    Gibt es hierfür irgendeinen Workaround, sodass ich die eingegebenen Daten per E-Mail übermitteln kann?

    Vielen Dank im Voraus
    Hallo,

    zunächst: Zugangsdaten gehören NIEMALS in den Quellcode. Damit öffnest du deinen Mailserver für alle! Du hast Glück, dass Silverlight das nicht unterstützt.

    Bessere Idee: Erstelle dein Kontaktformular in HTML (z.B. als Frame in Silverlight). Diese Seite sendet die eingegebenen Daten als POST-Request an ein PHP-Skript auf dem Webserver, welches die Mail lokal erstellt und forwardet (mail()-Aufruf). Vorteil: Keine Zugangsdaten im öffentlich einsehbaren Quellcode und die Ziel-Mailadresse ist auch verborgen.

    Edit: Du kannst vermutlich auch direkt den WebClient verwenden, sofern unterstützt. Das erspart dir die HTML-Seite. So etwa:

    XML-Quellcode

    1. <StackPanel>
    2. <TextBox x:Name="name" />
    3. <TextBox x:Name="mail" />
    4. <TextBox x:Name="text" />
    5. <Button Click="Submit" />
    6. </StackPanel>


    Und im Codebehind (Pseudocode!):

    VB.NET-Quellcode

    1. Sub Submit(...)
    2. Dim wc = New WebClient()
    3. Dim data = name.Text & "|" & mail.Text & "|" & text.Text
    4. wc.Send(server, data)
    5. End Sub


    Das PHP-Skript sieht dann so aus:

    PHP-Quellcode

    1. $name = $_POST["name"];
    2. // ...
    3. // ggf. Sanity-Checks auf Länge, Inhalt, ...
    4. $content = sprintf(..., $name) // ...
    5. mail(server, $content);
    Gruß
    hal2000

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „hal2000“ ()