2008-09-17 42 views

回答

1

这取决于您的应用程序。如果你认为你的几个用户将拥有一个email @localhost,并且你不介意。然后去做。

1

使其成为一个可配置的选项,让人们可以自己决定。我会默认个人,因为我还没有遇到一个案件 - 内联网或公共互联网 - 我有一个人使用有效的用户@本地主机类型的地址。

0

那么,如果你有DNS在内部工作,你总是可以做一个DNS查找。

但是,如果这将与SMTP失败,那么我会建议您确保不要包含它。

0

我已经看到了形式为user @ localhost的电子邮件地址,通常在查看邮件列表的存档并且从同一台机器上托管和发布的管理员时。所以肯定会发生 - 我承认它打破了我的解析程序!所以现在我对电子邮件地址更灵活一些。

0

望着这看起来就像你,我们需要两个快速检查为详细:

<?php 
function valid_email($email) { 
    // First, we check that there's one @ symbol, and that the lengths are right 
    if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { 
    // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. 
    return false; 
    } 

    // take a given email address and split it into the username and domain. 
    list($userName, $mailDomain) = split("@", $email); 
    if (checkdnsrr($mailDomain, "MX")) { 
     // this is a valid email domain! 
     return true; 
    } 
    else { 
     // this email domain doesn't exist! 
     return false; 
    } 
} 
?> 

source 1source 2

1

我将其禁用。很少有组织使用内部域,以及那些通常使用“acme.localhost”或“intranet.com”或其他类似内容的组织。 DNS中有一些配置可用于使其工作。无论如何,内部电子邮件几乎已经死了:随着即时消息,Twitter和SMS的出现,以及公司每个成员的外部电子邮件日益增多的可用性,几乎完全有可能你永远不会得到电子邮件中的无TLD域。

对于那些需要它的人,他们总是可以自己调整正则表达式,因为他们足够精明,可以设置自定义主机名来处理内部电子邮件。

相关问题