2013-02-02 26 views
0

我是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 = "[email protected]"; 
$mail_header="From: ".$name."<". $sender. ">\r\n"; 
$sendmail=mail($email, $subject,$message, $mail_header); 

我是能夠發送電子郵件,但我的問題是,我想知道,如果用戶的電子郵件地址雅虎,Gmail或其他電子郵件服務存在。

有什麼辦法可以過濾出無效的電子郵件嗎?

+0

這不就是激活電子郵件的全部要點嗎? –

回答

0

不是。關於你能做的最好的事情是發送一封電子郵件,看看用戶是否迴應。

+2

...並查看用戶是否迴應。您無法確定用戶是否收到該消息。 – Oswald

+0

對,好點。編輯。 – duskwuff

+1

感謝您的信息:) 我想知道我該如何將這種網站嵌入我們的網站www.infobyip.com/verifyemailaccount.php免費 – Jeff

1

使用SMTP郵件最好,易於使用SMTP

$mail->IsHTML(true); 
$mail->From="[email protected]"; 
$mail->FromName="Example.com"; 
$mail->Sender=$from; // indicates ReturnPath header 
$mail->AddReplyTo($from, $from_name); // indicates ReplyTo headers 
$mail->AddCC('[email protected]', '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; 
} 
0

根據正則表達式,對電子郵件地址進行正則表達式檢查可能令一些用戶感到沮喪。因此,我建議您跳過您的正則表達式測試,並將確認電子郵件與確認鏈接一起發送 - 任何情況下,只要有人提出新的DNS或SMTP擴展名,就會使您的應用程序變得脆弱並且容易破損。最好在他們關注的時候處理這​​件事。

例如:
需要在您的網站上填寫 -a確認碼
-a鏈接,去到你的網站,需要被訪問

而且它仍然是不確定的電子郵件是否是事後纔有,因爲只需簡單地創建一個臨時電子郵件來通過驗證並在之後刪除即可。

除了驗證電子郵件地址,您可以使用Google API讓用戶使用其帳戶登錄。也可以以類似的方式使用OpenID。儘管如此,這還不是完美的。但是,嘿,沒有什麼是100%。我們儘可能地努力讓自己儘可能地工作。而已。

PS:ICANN有望批准UNICODE域名Real Soon Now。這將與電子郵件地址的正則表達式模式玩地獄。