验证电子邮件地址是否存在

时间:2013-02-02 04:20:08

标签: php mysql

我是PHP的新手。我的目标是向在我的系统中注册的用户发送电子邮件。

这是我的代码:

$msg= " Hi $gen./$lName,  copy and paste this code in order to activate  
your account copy and paste this code:$num" ;
$email = "$emailadd";
$name= "GoodFaith Network Marketing Inc.";
$subject = "Account Activation";
$message = wordwrap($msg,70) ;
$sender = "cjoveric@myalphaedge.com";
$mail_header="From: ".$name."<". $sender. ">\r\n";
$sendmail=mail($email, $subject,$message, $mail_header );

我能够发送电子邮件,但我的问题是我想知道用户的电子邮件地址是否存在于Yahoo,GMail或其他邮件服务中。

有什么方法可以过滤掉无效的电子邮件吗?

3 个答案:

答案 0 :(得分:1)

使用最好且易于使用的SMTP邮件SMTP

$mail->IsHTML(true);
$mail->From="admin@example.com";
$mail->FromName="Example.com";
$mail->Sender=$from; // indicates ReturnPath header
$mail->AddReplyTo($from, $from_name); // indicates ReplyTo headers
$mail->AddCC('cc@phpgang.com.com', 'CC: to phpgang.com');
$mail->Subject = $subject;
$mail->Body = $body;
$mail->AddAddress($to);
if(!$mail->Send())
{
      $error = 'Mail error: '.$mail->ErrorInfo;
      return true;
 }
 else
 {
      $error = 'Message sent!';
      return false;
 }

答案 1 :(得分:0)

不是真的。您可以做的最好的事情是发送电子邮件,看看用户是否对此做出响应。

答案 2 :(得分:0)

对某些用户进行正则表达式检查电子邮件地址可能会令人沮丧,具体取决于正则表达式。因此,我建议您跳过正则表达式测试,只需发送带有确认链接的验证邮件 - 只要有人提出新的DNS或SMTP扩展,其他任何内容都会使您的应用程序变得脆弱并且可能会破损。最好是在他们注意时处理它。

例如:
- 需要填写您网站的确认码
- 一个链接,访问您的网站,需要访问

现在还不确定电子邮件是否存在,因为很容易简单地创建一个临时电子邮件来传递验证并在之后删除它。

您可以使用Google API让用户使用自己的帐户登录,而无需验证电子邮件地址。也可以以类似的方式使用OpenID。虽然,即使这不是100%完美。但是,嘿,没有什么是100%。我们都努力尽可能地按照自己的意愿工作。就是这样。

PS:预计ICANN将批准UNICODE域名Real Soon Now。这将使用电子邮件地址的正则表达式模式发挥快乐地狱。