Delphi - Elektronikus levél küldése script-el

forráskód letöltése
Elektronikus üzeneteket küldeni több módszerrel lehetséges. Felhasználhatjuk a Microsoft Office programcsomag Outlook alkalmazását is, azonban ehhez rendelkeznünk kell ezzel a programmal. Abban az esetben, ha ezzel nem rendelkezünk, akkor választhatunk a létező alternatív módszerek között. Cikkünkben bemutatjuk, hogyan érhetjük el a hálózatban található SMTP kiszolgálót egy script-ből.
A mellékelt program e-mail küldését végző funkciójának használatához rendelkeznünk kell a hálózatban elérhető SMTP kiszolgálóval.
A mellékelt példaprogramban a Sample alkönyvtárban elhelyezett TestPage.htm HTML oldal kódjában valósítjuk meg azt a script-kódot, melynek segítségével elektronikus üzenetet küldhetünk a megadott címről egy tetszőleges címre.
A HTML lapot a mellékelt alkalmazás indítása után a Form-ra helyezett TWebBrowser komponensben jelenítjük meg.
var Url, Flags, TargetFrameName, PostData, Headers: OleVariant;
begin
  Url := ExtractFilePath(Application.ExeName)+'Sample/TestPage.htm';
  WebBrowser1.Navigate2(Url, Flags, TargetFrameName, PostData, Headers);
  ...
A weblapon elhelyeztük azokat a mezőket, melyek kitöltése után indulhat a levélküldés.
A levélküldéshez két adatot kell kötelezően megadnunk, ezek a küldő és a címzett elektronikus levélcímei. A levél tárgya és szövege opcionális adatok. Az adatok megadása után a KÜLDÉS gombbal futtatható a script-kód.
A nyomógomb megnyomása után a Send JavaScript függvényt futtatjuk, mely egy tömbbe gyűjti a megadott információkat.
function Send()
{
  var params = new Array(4);
  params[0] = document.all["from"].value; 
  params[1] = document.all["to"].value; 
  params[2] = document.all["subject"].value; 
  params[3] = document.all["message"].value; 
Majd meghívjuk a Mail függvényt, paraméterként átadva a tömböt.
  Mail(params);
}
A Mail metódusban hozzuk létre a CDO.Message objektumot, melynek segítségével kapcsolódhatunk egy elérhető SMTP kiszolgálóhoz.
var iMsg;
iMsg = new ActiveXObject("CDO.Message");
Az objektumnak ezt követően elérhetjük a property-jeit, melyeknek átadjuk a paraméter tömbben kapott adatokat.
iMsg.From = params[0];
iMsg.To = params[1];
iMsg.Subject = params[2];
iMsg.TextBody = params[3];
Majd meghívjuk a Send metódusát, mely elküldi az e-mail-t a címzettnek.
iMsg.Send();
Mind a sikeres, mind a sikertelen műveletről tájékoztatást adunk.