我有一个邮件表单,如果它的名字是这样的,它将发送邮件
"someone@someplace.com"
但是如果电子邮件地址是
"cs@someplace.com"
mail()在发送之前会做某种验证吗?
另外,我的理解是,有效的电子邮件地址必须在@符号之前至少有2个有效字符。
有什么想法?
发布于 2011-05-16 17:23:58
cs@someplace.com
是一个有效的电子邮件地址,不管@符号前有多少个字符,只要有至少1个字符并且是RFC 5322中定义的ASCII字符即可。
假设您使用的是存在的有效电子邮件地址,问题出在您的服务器上。
mail()使用您机器上的SMTP服务器,因此可以检查一下它是如何配置的。
发布于 2011-05-16 17:18:57
somemplace.com与您用来发送邮件的SMTP服务器是同一个域吗?如果是,那么是,它可以在发送消息之前进行一些验证,以查看该邮箱是否实际存在。
但是,没有规定一个有效的电子邮件地址需要2个字符。其中一个就可以了。
a@b.com是有效的电子邮件地址。
在RFC822 spec中阅读更多内容。即使你不认为你能读懂“语法”,你也可以按照规范来定义一个地址,当你追查它的时候,你会发现它可以由地址左边的一个字符组成。(参见第6和3.3节)。
发布于 2011-05-16 17:18:43
另外,我的理解是,有效的电子邮件地址必须在@符号之前至少有2个有效字符。
不能,邮件可能只有一个字符a@mail.com
请张贴所有代码
https://stackoverflow.com/questions/6020880
复制