Kontakt-Formular in ASP.NET (C#)

Programmierung

Nachdem ich ganze 30min. meiner wertvollen Lebenszeit mit der Suche nach einer funktionieren Variante zum versenden von eMails unter ASP.NET verschwendet habe, hier mal ein Code-Schnipsel für ein funktionierendes Kontakt-Formular. Das ganze sollte eigentlich auf allen Webseiten funktionieren. Probiert es aus und schaut ob ihr es irgendwo verwenden könnt.


HTML-Code der .aspx-Seite

<h3>Kontaktformuar</h3>
<p>&nbsp;</p>
<form name="contactForm" method="post" action="siteKontakt.aspx">
  <div align="center" id="contactForm">
    <table>
      <tr>
        <td><b>Ihre eMail-Adresse:</b></td>
        <td><input id="contactMail" type="text" size="45" /></td>
      </tr>
      <tr>
        <td><b>Betreff:</b></td>
        <td><input id="contactTopic" type="text" size="45" /></td>
      </tr>
      <tr>
        <td><b>Nachricht:</b></td>
        <td><textarea id="contactMsg" cols="40" rows="10"></textarea></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><div align="center"><input id="contactButton" type="button" value="Nachricht abschicken" class="button" onclick="submitContactForm();"/></div></td>
      </tr>
    </table>
  </div>
</form>

C#-Code der Masterpage

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Net;
using System.Net.Mail;

namespace Kontaktformular
{
  public partial class Kontakt: System.Web.UI.MasterPage
  {
    protected void Page_Load(object sender, EventArgs e)
    {
      // Formulardaten auslesen
      String contactTopic = Request.Form["contactTopic"];
      String contactMail = Request.Form["contactMail"];
      String contactMsg = Request.Form["contactMsg"];

      // Testen ob das Formular abgeschickt und korrekt ausgefuellt wurde
      if (contactTopic != null && contactTopic.Length > 1
          && contactMail != null && contactMail.Length > 5)
      {
        // Email-Nachricht erstellen
        MailMessage email = new MailMessage();

        email.To.Add("adressse@mailserver.de");
        email.Subject = "[Kontaktformular] " + contactTopic.ToString();
        email.From = new MailAddress(contactMail.ToString());
        email.Body = contactMsg.ToString();

        // Login-Daten zum Email-Server
        NetworkCredential serverLogin = new NetworkCredential("adressse@mailserver.de", "passwort");

        // Verbindung zum Email-Server herstellen
        SmtpClient mailServer = new System.Net.Mail.SmtpClient("smtp.mailserver.de");
        mailServer.UseDefaultCredentials = false;
        mailServer.Credentials = serverLogin;

        // SSL gesicherte Verbindung aufbauen
        mailServer.EnableSsl = true;

        // Email versenden
        try
        {
          mailServer.Send(email);
        }
        catch (Exception exc)
        {
          // Fehlerbehandlung
        }
      }
    }
  }
}
Lesezeichen und Netzwerke:
  • Google
  • Digg
  • del.icio.us
  • Facebook
  • MySpace
  • Slashdot
  • StumbleUpon
  • MisterWong
  • Technorati
  • TwitThis
  • E-mail this story to a friend!
  • Print this article!

Eine Antwort

  1. Nurcan  •  Januar 22, 2010 @14:52

    Und wie aktivierst du den Button?

Einen Kommentar schreiben

Allowed tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Fatality, where Logic ends… is Digg proof thanks to caching by WP Super Cache!