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
-
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
inPage AI: Revoluční nástroj pro tvorbu webů
3. července 2024 -
Umělá inteligence v IT
27. září 2023 -
Co je to DNSSEC, jak funguje a jak si ho nastavit?
14. srpna 2024
Nejnovější
-
INNOCN monitory: špičková kvalita za zlomek ceny
5. června 2025 -
20 let Ubuntu: Cesta od revoluce k digitální každodennosti
30. května 2025 -
Google Chrome nyní mění kompromitovaná hesla – jak to funguje?
28. května 2025 -
Google spouští AI Přehledy ve vyhledávání v Česku
23. května 2025