Email-küldés Orchard-ból: Orchard.Email és SMTP
Íme a várva-várt Orchard-üzemeltetési trilógia lezáró epizódja: megnézzük hogyan kell SMTP-szervert telepíteni Windows-os szerverre, ezután természetesen be is konfiguráljuk (a megfelelő biztonsági beállításokkal együtt), majd a lezáró lépésekben megmondjuk az IIS-nek és az Orchard alkalmazásunknak, milyen módon tudnak majd együttműködni az SMTP-szerverrel. De előbb lássuk, meddig jutottunk az előző részekben:
- Orchard-os weboldal beüzemelése IIS alatt
- IIS-ben AppPool létrehozása az alkalmazásunknak
- Default Web Site lekapcsolása/törlése
- új site létrehozása és összekapcsolása az Orchard.Web könyvtárral
- Orchard-os oldal publikálása: Web Deploy
- Orchard.Web project beállítása: Visual Studio -> Publish Settings, publish profil mentése
- App_Offline
- opcionális: Deployment Package beállításai
- URL-Rewrite beállítások (Canonical Domain Name)
Először is előre elnézést kérek a magyar megnevezések esetleges pontatlanságáért, de nagyon régen nem használtam magyar nyelvű Windows-t.
No vágjunk bele! Telepítsük az SMTP-szervert a következő módon: Start-menüből indítsuk el a "Turn Windows features on or off" (Windows-szolgáltatások ki- és bekapcsolása?) alkalmazást, majd a Features (Szolgáltatások) menüpontból nyissuk meg az "Add features"-t (Szolgáltatások hozzáadása). Ezután pipáljuk ki az SMTP Server-t és járjuk el a szokásos Next-Next-Next-Finish körtáncot (és várjuk ki a vele járó rövid kerregést).
Előfordulhat (=nálunk előfordult), hogy a SMTP szerverhez tartozó service nem indul automatikusan a rendszer indításakor, tehát pl. update utáni restart után nem fog működni a levelezés. Ezt a Services (Local Services) szolgáltatáson belül orvosolhatjuk, ahol a Simple Mail Transfer Protocol elnevezésű service Startup type property-jét állítsuk Automatic-ra.
Indítsuk el az Internet Information Services (IIS) 6.0 Manager-t, válasszuk ki az SMTP Protocol-t és OK. Ezután jobbkatt a számítógép nevére (local computer) és a válasszuk ki a New/SMTP Virtual Server-t. A megnyíló varázslóban a következőket kell beállítanunk:
- Name: tetszőleges név az SMTP-szerverünknek, pl. "KókuszMail"
- IP: a szerverünk IP-címe, pl. 12.34.56.78
- Home directory: a szerver azon könyvtára, ahol az el nem küldött, visszapattant, stb. emaileket tárolja, általában C:/inetpub/mailroot.
- Domain: a számítógép neve.
Létrejött a szerver (ha nem indult el, indítsuk el), még állítsunk be néhány dolgot: jobbklikk és Tulajdonságok. Az általános beállítások között érdemes bekapcsolni a logolást, választhatunk formátumot és a logolás tulajdonságai között megadhatjuk, hogy mely könyvtárba kerüljenek a logok (pl. C:/inetpub/smtplogs), milyen adatokat tartalmazzanak és milyen időközönként/mérethatár szerint törlődjenek a korábbi logok. Az Access (Hozzáférés) fülön három további almenübe léphetünk be: Authentication (Hitelesítés, erre nem feltétlenül lesz szükségünk), Connection és Relay Restrictions. Az utóbbi kettő meghatározza, hogy kik csatlakozhatnak/használhatják a levelezőszerverünket: mi mindkettőhöz csak a saját szerverünk IP-jét adtuk hozzá (nyilván a helyes beállítások egyéni igények mentén eltérhetnek), illetve fontos még különbséget tenni a mindkét menüpont alatt megtalálható Only the list below / All except the list below (csak az alábbi lista / mindenki az alábbi listán kívül) választási lehetőségek között, nagy altalánosságban az előbbi lesz célravezető.
Végül a Messages (Üzenetek/Levelek?) menüpont alatt megadhatunk egy email címet, ahova a kézbesítetlen levelekről kaphatunk értesítést.
A következő lépésben nézzük be a Windows Firewall-hoz. Ugyan ennek a beállítása a Connection/Relay Restrictions miatt nem feltétlenül szükséges (adott esetben felesleges is lehet), azért nézzük meg, hogyan kell a tűzfalat úgy beállítani, hogy kívülről a szervert ne lehessen elérni, viszont a szerver tudjon kifelé kommunikálni. Először a tűzfal beállításai között az Inbound Rules alatt (bejövő forgalom) a Simple Mail Transfer Protocol (SMTP-In) szabály beállításai között válasszuk ki az Action-ök közül a Block the connection-t. Kimenő szabály létrehozására alapesetben nincs szükség, de bizonyos körülmények között szükség lehet rá: az Outboud Rules (kimenő forgalom) alatt hozzunk létre egy új szabályt (New Rules). Adjunk meg egy tetszőleges nevet (pl. SMTP-Out), a szabály legyen engedélyezve és a kommunikáció is legyen engedélyezve. A Protocols and Ports fülön (Protokollok és portok) állítsuk be a protokol típusát TCP-re, a helyi portot Specific port-ra (Meghatározott port?) és alatta írjuk be a 25-öt. Mentsük el a beállításokat és a tűzfallal meg is vagyunk.
De még mindig nincs vége: most jön az IIS-alkalmazásunk beállítása (a 7.5 Express-ben), de ez lényegesen rövidebb lesz, mint az eddigiek: az alkalmazásunk beállításai között a ASP.NET szekcióban találjuk az SMTP E-Mail opciót: az E-mail address-nél megadhatunk egy tetszőleges (akár fiktív) email címet, amely a feladója lesz a szerverről érkező emaileknek. Ezután pipáljuk ki a Use localhost-ot (Helyi számítógép?) és ha nem lenne beírva, akkor a portszámnak adjuk meg a 25-öst. Mentsük el a beállításokat, ezzel meg is volnánk. Ezek a beállítások egyébként a web.config-ban a következőképpen fognak megjelenni:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="[email protected]" />
<network defaultCredentials="false" host="localhost" port="25" />
</smtp>
</mailSettings>
</system.net>
Végezetül lépjünk be az Orchard alkalmazásunk admin felületére és Settings/Email (Beállítások/E-mail, ha nem jelenik meg, akkor a kapcsoljuk be ezt a funkciót) adjuk meg a feladó email címnek ugyanazt, mint amit az IIS-ben adtunk meg, a host nevénél a szerver IP-címét, a port számának pedig a 25-öst. A maradék két checkbox-ot hagyjuk bejelöletlenül.
Ezzel el is készültünk, remélem ez a kis szösszenet nem okozott senkinél TLDRException-t!