RSS

Allegro Common Lisp ile E-posta Doğrulama: RFC 2822 Blues ;-)

24 Aug

Hazır Allegro CL 8.1 çıkmışken ve ben de 8.0’dan Allegro CL 8.1 Express Edition‘a geçiş yapmışken Phil Haack’ın ‘I Knew How To Validate An Email Address Until I Read The RFC‘ başlıklı blog girdisi dikkatimi çekti. Görülen o ki Phil, RFC 2822 – Internet Message Format‘ı keşfedince e-posta adresi doğrulamanın ilk başta düşündüğü kadar basit bir iş olmadığını fark etmiş. Reddit‘te de epey yoruma yol açan bu tartışmada şu tür eğlenceli şeyler de görmek mümkün:

Q. How do I check a valid mail address?
A. You can’t, at least, not in real time. Bummer, eh?

Tabii bir de bu işin kolay yolu var, mesela RFC 2822 uyumlu bir programlama ortamı kullanmak, misal Allegro CL 8.1:


(require :rfc2822)
(use-package :net.mail)

(parse-email-address "david;m@franz.com")
NIL

(parse-email-address "John+Smith@example.com")
"John+Smith"
"example.com"

(extract-email-addresses ""John Smith"@example.com")
((:MAILBOX NIL ""John Smith"" "example.com"))

(valid-email-domain-p "franz.com")
T

(valid-email-domain-p "xnosuchdomainx.com")
NIL

CG-USER(43): (valid-email-domain-p "nosuchdomain.com")
T

Görüldüğü gibi parse-email-address, extract-email-addresses ve valid-email-domain-p gibi fonksiyonlar sayesinde eposta adresi doğrulama hamallığı da Lisp sistemine havale edilmiş oluyor 😉

Advertisements
 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: