Web-mail služba pomocí ASP.NET
Velmi často se mohou stát případy, kdy potřebujeme přimět naši webovou stránku k posílání emailu. Dnes si ukážeme, jak to jde udělat pomocí funkcí .NET frameworku.
V ASP.NET je podpora Simple Mail Transfer Protokolu (SMTP) přímo zakomponována v systémových assemblies. Není tedy třeba využívat ActiveX, či jiné COM knihovny, jako tomu je v ASP. Na pomoc máme třídu SmtpMail v jmenném prostoru System.Web.Mail s její jedinou statickou funkcí Send (nemusíme vytvářet novou instanci třídy). Pomocí této metody můžeme rychle posílat emailové zprávy, a to za použití této syntaxe:
|
Tento způsob je velmi jednoduchý a jelikož je metoda Send přetížená, můžeme ji volat i jinými způsoby. Jedním z nich je použití třídy MailMessage k definici nového emailu. Je nutné založit jeho novou instanci, vyplnit vlastnosti, které popisují zprávu a opět zavolat metodu Send:
|
Tento způsob snadno využijeme například k zasílání ceníků nebo informačních materiálů, kde dynamicky doplňujeme pouze vlastnost To a ostatní máme třeba fixně zadané na serveru.
Jiný případ může nastat, pokud si chceme naprogramovat odesílací schopnosti svého poštovního klienta, příkladem jsou různé web-mail služby. Zkusíme si tedy takový webmail vytvořit. První část se skládá z návrhu uživatelského rozhraní. To vytvoříme do souboru email.aspx do kterého doplníme tento kód:
|
Pro připojení přílohy ke zprávě je použito elementu <INPUT>, u kterého musí být nastaveno runat= „server“, abychom si pro něj mohli nadeklarovat příslušné proměnné v souboru se zdrojovým kódem. Ostatní elementy začínající <asp:…> musí mít tuto hodnotu nastavenu také, aby mohli být generovány na serveru. Kód, který se stará o samotné posílání emailu, zapíšeme do souboru email.aspx.cs:
|
Tento kód zajistí připojení potřebných namespace, deklaraci proměnných zastupujících ovládací prvky formuláře a k tlačítku Odešli email (btnSend) připojí událost Click spojenou s metodou btnSend_Click. Tato událost nastane vždy, když uživatel stiskne toto tlačítko. Do této metody doplníme následující příkazy:
|
Jako první zde vytváříme textovou proměnnou strAttachment reprezentující jméno souboru, který se při odesílání emailu nahrává na server. Dále je nutno ošetřit, zda byl vůbec nějaký soubor na server nahrán, což zajišťuje podmínka if(txtAttachment.PostedFile != null)
. Pokud byl tedy soubor nahrán, je uložen na disk C:, následně přidán do přílohy zprávy a smazán. Dále je zpráva vytvořena podle postupu popsaného výše. Pokud byla zpráva úspěšně odeslána, zobrazí se zelené hlášení, pokud byla generována výjimka, je vypsána barvou červenou.
Námět do diskuze:
Na tomto přikladu si můžeme všimnout jedné zajímavosti. Server nijak neověřuje, zda emailová adresa v řádku Od je skutečně vaše. Některé iniciativnější servery provedou kontrolu, zda doména v zadané adrese existuje, ale to je vše. Toho také patřičně využívají některé emailové wormy. SMTP je protokol, který vznikal na počátcích internetu, ale i tak si myslím, že by si jisté zabezpečení zasloužil. A co si myslíte vy?
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Znovuuvedení domény .AD
5. září 2024 -
Souboj na trhu s CPU pro servery: AMD vs. Intel
8. prosince 2023
Nejnovější
-
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024 -
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024