Jak odesílat e-maily z webové stránky
9. ledna 2007
|
Radek Kropík
|
Pokud jste již v ASP.NETu programovali, jistě víte, že pro odesílání mailů se dříve používala funkcionalita z namaspace System.Web.Mail. Pokud toto i nadále používáte, nic se samozřejmě neděje, vaše aplikace bude normálně fungovat, ale je doporučené přejít na novější zápis, kde se používá funkcionalita z namaspace System.Net.Mail. Pokud jste v ASP.NETu začátečníky nebo jen hledáte návod, jak odesílat maily ze své aplikace, podívejte se na následující jednoduchý příklad v jazyku VB.NET:
‘Připravíme si mail
Dim Zprava As New System.Net.Mail.MailMessage()
Zprava.From = New System.Net.Mail.MailAddress
(“pavla@fantomas.cz”, “Pavla“)
Zprava.To.Add(New System.Net.Mail.MailAddress
(“pavel@fantomas.cz”, “Pavel”))
Zprava.Subject = “Předmět mailu”
Zprava.Body = “Tady je text e-mailu”
‘Odešleme mail
Dim Odeslat As New System.Net.Mail.SmtpClient()
Odeslat.Send(Zprava)
Zprava.Dispose()
Pokud jste již ve své aplikaci měli funkci na odesílání mailů, jistě jste si všimli, že lze nově mimo e-mailové adresy uvést i jméno, které se u adresy objeví. Novinkou nyní je, že odesílání se provádí pomocí třídy SmtpClient a její metody Send().
Než začneme maily odesílat, musíme si ještě v souboru web.config nastavit několik parametrů. Prvně si musíte určit, jakou metodou bude mailová zpráva odeslána. Na výběr máte z těchto tří možností:
PickupDirectoryFromIis
Toto je výchozí a nejvíce používaná možnost. K odesílání mailů se použije SMTP server IISka. U této metody není vlastně co nastavovat.
SpecifiedPickupDirectory
Můžete si určit vlastní PickupDirectory, kam budou maily směrovány. U této možnosti je nutné nastavit složku, kam budou maily ukládány. Nejobvyklejší je cesta: C:\InetPub\MailRoot\Pickup
Network
K odesílání mailů se bude používat specifikovaný SMTP server. Z toho vyplívá, že musíte určit SMTP server, přes který budou maily odesílány. Zde je příklad nastavení:
<?xml version=“1.0“?>
<configuration>
<system.net>
<mailSettings>
<smtp from=“odesilatel@server.cz“ delivery
Method=“Network“>
<network host=“smtp.server.cz“ port=“25“
userName=“user“ password=“heslo“ />
</smtp>
</mailSettings>
</system.net>
</configuration>
Poznámka: Jako host se často používá localhost
No a nyní by vám mělo odesílání mailů fungovat. Možností, jak maily odesílat, je samozřejmě víc. Mimo tohoto příkladu, který odesílá mail pouze ve formátu PlainText je možné odesílat maily také ve formátu HTML a je dokonce možno odesílat i přílohy. Ale o tom si povíme v dalším článku.