Mail fájlok és a CDO 1.
By SUF
Abba a problémába futottam a levlista program fejlesztgetése során, hogy hogyan dolgozzuk fel azokat a leveleket amik az SMTP szerver drop könyvtárába érkeznek, vagy bármilyen más MIME formátumú levelet. Ha ez a levél eml kiterjesztéssel rendelkezik és egyszerűen rákattintunk akkor jön az Outlook Express és megmutatja a levelet. Természetesen ha programból kell csinálnunk valamit vele, akkor ez nem lesz ilyen egyszerű. Például mi van akkor, ha szükségünk van egy From egy To vagy egy Subject mezőre? Esetleg a levél törzsét (HTML Body) szeretnénk letárolni egy adatbázisba?
Megtehetjük azt, hogy reguláris kifejezésekkel kiszedjük a fájlból amire szükségünk van. Megtehetjük, hogy Ãrunk egy feldolgozó programot ami megfelelÅ‘en szétszedi a levelet az igényeinknek megfelelÅ‘en. Egyik megoldás sem egyszerű, ráadásul szükségtelen. A Microsoftnak van egy megfelelÅ‘ objektum könyvtára erre. Ez a CDO (vagy CDOEX).
A feladatunk annyi, hogy a levelet betültsük egy CDO.Message objektumba. Ezzel csak egy probléma van. Ez az objektum nem kÃnál közvetlenül olyan lehetÅ‘séget, hogy fájlból betöltsük a tartalmát. Ezért azt tehetjük meg, hogy a fájlt megnyitjuk egy ADODB.Stream-ként és ezt adjuk meg adatforrásként a CDO.Message objektumnak. Ez JScriptben Ãgy fog kinézni:
function LoadMsgFile(FileName)
{
var adTypeBinary = 1;
var Msg;
var MsgStream;
Msg = new ActiveXObject("CDO.Message");
MsgStream = new ActiveXObject("ADODB.Stream");
MsgStream.Type = adTypeBinary;
MsgStream.Open();
MsgStream.LoadFromFile(FileName);
Msg.DataSource.OpenObject(MsgStream,"_Stream");
return Msg;
}
By SUF
szeptember 12, 2005 at 11:59
Posted in: exchange


Leave a Reply