Sähköpostin lähetys - C Sharp.NET
Mureakuha
- 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); } ...
