Diyelim ki elinizde bir word dosyası var. Bunun içerisinde bir sürü text var ve aralarda e-posta adresleri de var. İşte o adresleri olurda bir gün ayıklamanız gerekirse diye hazırladığım ufak bir fonksiyonu sizlerle paylaşmak istedim.
Genelde E-Mail Extractor adı altında bir çok ücretli/ücretsiz os-based program mevcut. Tabii bir çoğu da işinize yaramıyor yada yeterli olmuyor. Benimde başım bu sebepten ağrımaya başlayınca kendi derdimin çözümünü kendim üretmekde buldum.
Çok basic bir fonksiyon, çok basic bir post-form ile hazır uygulama haline getirebilirsiniz. İşte işlemi yapan kod öbeği;
<%
str_girdi = Request.Form("dump")
If Not str_girdi = "" Then
Dim ObjRegExp
Dim TumIfade
Dim Sonuc
Dim Ifade
TumIfade = str_girdi
Set objRegExp = New regexp
objRegExp.Pattern = "(S+@S+..SSS?)"
objRegExp.IgnoreCase = True
objRegExp.Global = True
Set Sonuc = objRegExp.Execute(TumIfade)
For Each Ifade In Sonuc
Response.Write Ifade.Value & vbcrlf
Next
Set Sonuc = Nothing
Set objRegExp = Nothing
End If
%>
Ben bunu bir <textarea></textarea> elemanı içinde kullanıyorum ve başka bir textarea içine yapıştırdığım datayı form-post ederek işleme tabii tutuyorum. Gerisinin kullanımı size kalmış.
Not: %100 kusursuz çalışıyor diyemem. Bir takıp çöp veriler girdiği zaman sapıtabiliyor (SQL Dump çıktısı, anlamsız karakter kümesi vb). Bunu engellemek imkansız gibi, çünkü gönderdiğiniz kaynak içinde @ (at) ve . (dot) işaretleri varsa, klasik bir e-posta özelliği taşıyan veriye dönüşüyor. Yine bunu aşmak için kontrol alanına (response.write Ifade.Value) bir gereksiz karakter temizleme fonksiyonu koyabilirsiniz. böylece bulunan sonuç içinde #$½%!£€ gibi işaretler yer alırsa bunu es geçirtebilirsiniz.
Kolay gelsin arkadaşlar.
