如何测试mail()
邮件是否已成功投递?
好吧,mail()
只是返回一个布尔值,具体取决于邮件是否成功接受传递。从 php.net 网站:
如果邮件已成功接受传递,则返回 TRUE,FALSE 否则。
重要的是要注意,仅仅因为邮件被接受 交付,这并不意味着邮件将实际到达预期 目的地。
因此,您可以测试它是否已"发送",但是检查它是否已发送是另一回事。
根据Ben的回复,您可以检查电子邮件是否成功,如下所示
$result = mail('abc@test.com', '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.';
}
试试这个:
if(@mail($emailRecipient, $subject, $message, $headers))
{
echo "Mail Sent Successfully";
}else{
echo "Mail Not Sent";
}
来自
文档:
"如果邮件已成功接受投递,则返回 TRUE, 否则为假。
重要的是要注意,仅仅因为邮件被接受投递,并不意味着邮件实际上会到达预定目的地。"
来自 http://php.net/mail
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
mail() 函数本身只是通知您您设置的"电子邮件"是合法的,并将向我发送您的电子邮件服务器。
您必须单独检查电子邮件地址是否合法。一篇好文章可以在这里找到
如果这两种方法不适合您,您可以使用一些使用图像和服务器日志文件的"垃圾邮件"方法。
if (isset($_POST["btn_emp"])) {
//$hid_emp = ($_POST['hid_emp']);
$employee_name = ($_POST['employee_name']);
$department_id = ($_POST['department_id']);
$serial_number = ($_POST['serial_number']);
$employee_address = ($_POST['employee_address']);
$employee_contact = ($_POST['employee_contact']);
$employee_email = ($_POST['employee_email']);
$insert = "INSERT INTO tbl_employee(department_id,serial_number,employee_name,employee_address,employee_contact,employee_email)VALUES('$department_id', '$serial_number', '$employee_name','$employee_address' ,'$employee_contact', '$employee_email')";
//echo $insert;
//die();
if ($conn->query($insert) === TRUE) {
//CODE FOR SEND MAIL
$Mail_Admin_Message = '';
$Mail_Admin_Message .= '
<table width="700px" border="0" cellpadding="0" cellspacing="0">
<tr height="15px"><td colspan="3"></td></tr>
<tr>
<td colspan="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
Date</b> :<b> '. $serial_number .'</b>
</td>
</tr>
<tr height="15px"><td colspan="3"></td></tr>
<tr>
<td colspan="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
Hi</b> <b> '. $employee_name .'</b>
</td>
</tr>
<tr height="15px"><td colspan="3"></td></tr>
<tr>
<td colspan="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
Your Gift Voucher Code is</b> :<b> '. $department_id .'</b>
</td>
</tr>
<tr height="15px"><td colspan="3"></td></tr>
<tr>
<td colspan="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px;">
Gift Amount</b> :<b> '. $employee_address .'</b>
</td>
</tr>
<tr height="15px"><td colspan="3"></td></tr>
<tr height="15px"><td colspan="3"></td></tr>
<tr>
<td colspan="3" style="font-family:Verdana, Arial, Helvetica, sans-serif; font-size:12px; font-weight:bold;">Thanks, <br />DairyKart Team</td>
</tr>
</table>';
$Mail_To_Admin_ID = $employee_email;
$Mail_Admin_Subject = "Employee Details";
$Mail_Admin_Header = "MIME-Version: 1.0'n";
$Mail_Admin_Header .= "Content-type: text/html; charset=iso-8859-1'r'n";
$Mail_Admin_Header .= "Content-Transfer-Encoding: 8bit'n";
$Mail_Admin_Header .= "X-Priority: 1'n";
$Mail_Admin_Header .= "From: Employee-Department Project'r'n";
$Mail_Admin_Header .= "X-MSMail-Priority: High'n";
mail($Mail_To_Admin_ID, $Mail_Admin_Subject, $Mail_Admin_Message, $Mail_Admin_Header);
//echo $serial_number;
//echo $employee_email;
//die();
echo "<script>alert('Successfully Added & Check Your Mail to know your Details.!!!'); window.location='add-employee.php'</script>";
您可以在 PHP 中使用 $_SERVER['REMOTE_ADDR']
来接收用户的远程 IP 地址。
像这样使用:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
echo "User's IP address is: ".$ip;
?>