Sähköpostin lähetys - C Sharp.NET

Mureakuha

Loikkaa: valikkoon, hakuun
Teknisistä rajoituksista johtuen artikkelin yllä näkyvä otsikko on virheellinen. Oikea otsikko on Sähköpostin lähetys - C# .NET.

Sisällysluettelo

Sisältö

Tämä artikkeli kertoo lyhyesti kuinka käytät .NET ympäristössä System.Web.Mail-nimiavaruutta sähköpostin lähetykseen. Muistathan lisätä ohjelmasi "using"-listaan System.Web.Mail-nimiavaruuden. Esimerkeissä kielenä on C#, mutta kääntäminen vaikkapa VB.NET:lle ei pitäisi olla vaikeaa.

Huomioi että .NETin 2.0-versiossa ei System.Web.Mail-nimiavaruus ole suositeltava vaan System.Net.Mail. Tämän käyttäminen on jonkin verran erilaista mutta perusidea on sama.

Esimerkki

private void LahetaSahkoposti(string viesti, string otsikko, string email, string lahettaja)
{
   SmtpMail.SmtpServer = "127.0.0.1"; // ip tai host käy
   MailMessage maili = new MailMessage();
   maili.From = lahettaja; // lähettäjän osoite joka näkyy vastaanottajalle
   maili.BodyFormat = MailFormat.Text;
   maili.To = email;
   maili.Subject = otsikko;
   maili.Body = viesti;            
   
   MailAttachment liite = new MailAttachment("C:\\hakemisto\\tiedosto.txt"); // Liitetiedosto
   maili.Attachments.Add(liite);
         
   SmtpMail.Send(maili);            
}

SmtpMail.SmtpServer määrittää käytettävän sähköpostipalvelimen, kuten voit ehkä päätellä, käytettävä protokolla on SMTP.

MailMessage-luokka sisältää tarvittavat ominaisuudet viestin luomiseen ja MailAttachment-luokkaa käytetään liitetiedoston liittämiseksi sähköpostiviestiin.

SmtpMail.Send lähettää viestin.

Esimerkki 2.0

private void LahetaSahkoposti(string viesti, string otsikko, string email, string lahettaja)
{
   SmtpClient cl = new SmtpClient("127.0.0.1"); // ip tai host käy
   MailMessage maili = new MailMessage();
   maili.From = new MailAddress(lahettaja, "Testi Lähettäjä"); // lähettäjän osoite joka näkyy vastaanottajalle
   maili.To.Add(new MailAddress(email, "Vastaan Ottaja"));
   maili.IsBodyHtml = false;
   maili.Subject = otsikko;
   maili.Body = viesti;            
   
   Attachment liite = new Attachment("C:\\hakemisto\\tiedosto.txt"); // Liitetiedosto
   maili.Attachments.Add(liite);
         
   cl.Send(maili);
}

Huomioitavaa

Mikäli haluat viestille enemmän kuin yhden vastaanottajan, voit erotella ne puolipisteellä: "sahkopostiosoite@joku.fi;osoite@host.fi".

BodyFormat määrittää viestin tekstin tyylin. Se voi olla joko Text Tai Html. Mikäli käytät viestissäsi html-muotoilua muista asettaa BodyFormat Html-muotoon, muutoin viestisi html-muotoilu näkyy vastaanottajalla tekstinä ja viestiä on tavallisen käyttäjän liki mahdoton lukea. Huomioi myös, että vastaanottajalla saattaa olla käytössä sähköpostiohjelma joka ei tue html-muotoilua (hyvin harvinaista).

Sähköpostiin voidaan liittää myös useita liitetiedostoja. Jos haluat liittää vaikka kaikki liitetiedostot tietyssä hakemistossa onnistuu se helposti näin:

...
MailAttachment LiiteTiedosto;
foreach (string file in System.IO.Directory.GetFiles("C:\\hakemisto"))
{
	LiiteTiedosto = new MailAttachment(file);
	maili.Attachments.Add(LiiteTiedosto);
}
...
Henkilökohtaiset työkalut