Sende epost i C#

Microsoft.NET-rammeverket tilbyr mange klasse-biblioteker som gjør livet til en utviklere enkelt. I denne artikkelen skal vi se på hvordan vi kan bruke MailMessage- og SmtpClient-klassen til å sende e-post. Som eksempel bruker vi et skjema på en webside hvor brukere kan gi tilbakemeldinger på tjenesten.

Brukergrensesnitt

Under er et bilde av hvordan vårt brukergrensesnitt ser ut. Brukeren skal skrive inn navnet sitt og meldingen han eller hun ønsker å sende.

web_form_filled

Programkode for å sende epost

Som nevnt tidligere skal vi bruke MailMessage- og SmtpClient-klassen for å sende e-post. Disse ligger i System.Net.Mail-namespacet. Vi legger derfor til

   1:  using System.Net.Mail;
 
namespacet som gir oss metodene for å sende en e-post.

Vi lager så en metode for å sende en e-post fra vårt webskjema. Metoden tar inn 2 parametre, “name” og “message” hvor “name” er “Ditt navn”-feltet og “message” er “Melding”-feltet.i webskjemaet. Vår metode vil se slik ut:

   1:  // Metode for å sende en e-post fra webskjemaet.
   2:  private static void SendFeedbackEmail(string name, string message)
   3:  {
   4:      var mailFrom = new MailAddress("skjema@heltenkelt.no");     // Avsender
   5:      var mailTo = new MailAddress("webmaster@heltenkelt.no");    // Mottaker
   6:      var mailSubject = "Tilbakemelding (webskjema)";             // Emne
   7:      var mailBody = string.Format("Fra: {0}\nMelding: {1}\n",
   8:                                      name, message);             // Meldingskropp
   9:   
  10:      // E-posten som skal sendes.
  11:      var mailMessage = new MailMessage(mailFrom, mailTo)
  12:      {
  13:          Subject = mailSubject,
  14:          Body = mailBody
  15:      };
  16:   
  17:      // Smtp-klient for å sende e-post. Som kunde hos webhuset kan du benytte 
  18:      // smtp-relay2.webhuset.no som smtp-server.
  19:      var smtpClient = new SmtpClient("smtp-relay2.webhuset.no");
  20:   
  21:      // Sender e-posten gjennom smtp-klienten.
  22:      smtpClient.Send(mailMessage);
  23:   
  24:      // Opprensking.
  25:      mailMessage.Dispose();
  26:  }

 

Koden over viser hvordan vi benytter MailMessage- og SmtpClient-klassen for å sende e-post. Vi deklarer først variabler for avsender, mottaker, emne og meldinskropp. Vi benytter så variablene når vi instansierer MailMessage-objektet. som representerer den e-posten vi skal sende. Deretter instansierer vi et SmtpClient-objekt. Dette benyttes så til å sende e-posten.

Merk at når vi opprettet vår SmtpClient sendte vi med vertsnavnet på vår smtp-server. Har du dedikert eller virtuell server fra Webhuset kan du benytte “smtp-relay2.webhuset.no”.

Brannmur

Før du kan begynne så sende e-post fra din server må du kontrollere at dette er tillatt i brannmuren. Dette gjør du ved å:

  • Logge inn på vårt Kundesenter.
  • Klipp på “Server”.
  • Velg server fra menyen på venstre side.
  • Klikk på “Brannmur”.
  • Dersom brannmuren er påslått klikker du på “Programmer”.
  • Skroll ned til “EPOST OG NEWS”.
  • Kontroller at det er haket av for “Ut” på “SMTP”. Hvis ikke haker du av for “Ut” og klikker “Lagre endringer”.

firewall_open_smtp_out

Du er nå klar til å sende e-post fra din server.

Eksempelkoden kan lastes ned her

Twitter Digg Delicious Stumbleupon Technorati Facebook Email