well i like to understand ... not just using somoene's
written module... i'm not trying to write some very short
script ... because it's very practically for me to write
something hard(interesting) myself because it's good ...
it help's inprove'ing my skills.
What's the difference between using a module and copying code someone here gives you then? If you want to understand, just read the module. Reading code also helps improve your skills -- especially if you're going to be doing any serious programming in the future.
While I personally don't mind recreating the occasional wheel, I think this might be a bit much. You'll need to read the RFC and fully understand all of it to determine what you'll need to do. There's a million halfassed ways of doing it (I've been guilty of this myself) but you probably would be better served just using the module and picking a more useful wheel to recreate that will give you the opportunity to learn more than the intimate details of parsing email addresses.