2012-05-14 141 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; 

?> 
相关问题