2012-05-14 75 views

回答

11

那麼mail()只是返回一個布爾值,這取決於郵件是否被成功接受發送。從php.net網站:

返回true如果郵件被成功接受交付,FALSE 否則。

重要的是要注意,僅僅因爲郵件被接受爲 交付,它並不意味着郵件實際上會到達預期的 目的地。

因此,您可以測試它是否被「發送」,但檢查它是否被傳送是另一回事。

+0

郵件()返回true沒有按這並不意味着電子郵件已成功傳送。你可能會在幾分鐘後收到收到電子郵件的服務器(例如沒有這樣的用戶名)的「郵件傳遞失敗」消息 – jondinham

+9

我認爲這就是我說的?! –

+0

噢,你說得對:) +1 – jondinham

2

從文檔:

「如果郵件被成功接受交付, FALSE,否則返回TRUE

要注意,只是因爲郵件被接受交付是非常重要的,這並不意味着郵件實際上會到達預定的目的地。「

2

http://php.net/mail

Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise. 
0

郵件()函數只是通知你,你設置的「電子郵件」是合法的,將發送我的電子郵件服務器。

您必須單獨檢查電子郵件地址是否合法。可以找到一篇好文章here

如果這兩種方法不適合你,你可以使用一些「垃圾郵件」的方法使用圖像和服務器的日誌文件。

9

按本回復,您可以檢查成功電子郵件傳遞如下

$result = mail('[email protected]', 'Test Subject', $message); 
if(!$result) { 
    echo "Error"; 
} else { 
    echo "Success"; 
} 

爲了獲得更好的結果,您可以使用PHPMailer的。點擊下面的鏈接獲取PHPMailer的詳細文檔。

http://phpmailer.worxware.com/index.php?pg=tutorial

if(!$mail->Send()) { 
    echo 'Message was not sent.'; 
    echo 'Mailer error: ' . $mail->ErrorInfo; 
} else { 
    echo 'Message has been sent.'; 
} 
+0

感謝鏈接Chauhan。 – Sunny

-3

可以在PHP中使用$_SERVER['REMOTE_ADDR']接收用戶的遠程IP地址。

使用像這樣:

<?php 

    $ip = $_SERVER['REMOTE_ADDR']; 
    echo "User's IP address is: ".$ip; 

?> 
相關問題