- 论坛徽章:
- 0
|
下面文字引自《PERL编程24学时教程》第22学时
也许你已经发现C G I程序并不试图确定用户输入的电子邮件地址是否有效。它这样做是很有理由的,因为它无法确定该地址是否有效。
这个原因一定会使你大吃一惊。
标准的解决办法是设法清除掉显然无效的地址,无法确定是否有效的地址则属例外。电子邮件地址的I n t e r n e t标准( R F C - 8 2 2)有一个标准电子邮件地址的模板。但是,有些符合R F C - 8 2 2标准的有效地址实际上是无效的,而有些不符合R F C - 8 2 2标准的地址却是有效的、可以传递邮件的地址。
编写对电子邮件地址进行匹配的正则表达式是不行的。例如,表达式/ ^ [ \ w. - ] + \ @ ( [ \ w, -] \ . ) + \ w + $ /看上去是可行的,它甚至与m e @ s o m e w h e r e . c o m这个地址相匹配。但是,它拒绝下面这个完全有效的电子邮件地址:
*@qz.az
clintp!sol2!westwood@dec.net
realy%me@host.com
"barney&fred"@flintstones.net
与符合R F C - 8 2 2标准的电子邮件地址相匹配的一个正则表达式长达4 7 0 0个字符,因为太长,所以本书没有将它列出,你也很难键入。同时它也无法与I n t e r n e t上的每个传输邮件的地址相匹配。
那么究竟怎么办呢?
若要确定电子邮件地址是否有效,唯一的办法是将一个邮件发送到该地址,然后等待对方的答复。如果由于某个原因,你希望确保对方地址上有人(比如将来将邮件发送给他,因为他要求发送),请发送一个电子邮件,要求他回答。当对方的答复返回时,就知道你发送了一份有效的电子邮件。
我的E文不好,没法看懂最新文档,不过我认为该书的描述现在依然有效。 |
|