Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何测试PHP mail()是否已成功传递邮件_Php - Fatal编程技术网

如何测试PHP mail()是否已成功传递邮件

如何测试PHP mail()是否已成功传递邮件,php,Php,如何测试mail()是否已成功传递邮件?好的mail()仅返回一个布尔值,具体取决于邮件是否已成功接受传递。从网站: 如果邮件已成功接受传递,则返回TRUE,返回FALSE 否则 重要的是要注意,仅仅因为邮件被接受 但这并不意味着邮件将实际到达预定的目的地 目的地 因此,您可以测试它是否已“发送”,但检查它是否已发送则是另一回事。来自文档: “如果邮件已成功接受传递,则返回TRUE, 否则就错了 重要的是要注意,仅仅因为邮件被接受交付,并不意味着邮件将实际到达预定目的地。”From 仅mail(

如何测试
mail()
是否已成功传递邮件?

好的
mail()
仅返回一个布尔值,具体取决于邮件是否已成功接受传递。从网站:

如果邮件已成功接受传递,则返回TRUE,返回FALSE 否则

重要的是要注意,仅仅因为邮件被接受 但这并不意味着邮件将实际到达预定的目的地 目的地

因此,您可以测试它是否已“发送”,但检查它是否已发送则是另一回事。

来自文档:

“如果邮件已成功接受传递,则返回TRUE, 否则就错了

重要的是要注意,仅仅因为邮件被接受交付,并不意味着邮件将实际到达预定目的地。”

From

仅mail()函数就通知您,您设置的“电子邮件”是合法的,并且将发送到您的电子邮件服务器

您必须单独检查电子邮件地址是否合法。可以找到一篇好文章


如果这两种方法不适合您,您可以使用一些“垃圾邮件”方法,使用图像和服务器的日志文件。

根据Ben reply,您可以按以下方式检查电子邮件发送是否成功

$result = mail('abc@test.com', 'Test Subject', $message);
if(!$result) {   
     echo "Error";   
} else {
    echo "Success";
}
为了获得更好的结果,可以使用PHPMailer。单击下面的链接以获取PHPMailer的详细文档


您可以在PHP中使用
$\u SERVER['REMOTE\u ADDR']
来接收用户的远程IP地址

像这样使用:

<?php 

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

 ?>
试试这个:

if(@mail($emailRecipient, $subject, $message, $headers))
{
  echo "Mail Sent Successfully";
}else{
  echo "Mail Not Sent";
}
如果(isset($_POST[“btn\u emp”])){

/$hid\u emp=($\u POST['hid\u emp']);
$employee_name=($u POST['employee_name']);
$department_id=($_POST['department_id']);
$serial_number=($_POST['serial_number']);
$employee_address=($u POST['employee_address']);
$employee_contact=($u POST['employee_contact']);
$employee_email=($u POST['employee_email']);
$insert=“插入tbl_员工(部门id、序列号、员工姓名、员工地址、员工联系人、员工电子邮件)值(“$department_id”、“序列号”、“员工姓名”、“员工地址”、“员工联系人”、“员工电子邮件”)”;
//echo$insert;
//模具();
如果($conn->query($insert)==TRUE){
//发送邮件的代码
$Mail\u Admin\u Message='';
$Mail\u Admin\u Message.='
日期:'.$serial_number'
您好。$employee\u name
您的礼品券代码为:'.$department\u id'
礼品金额:'.$employee_address'
谢谢,
奶牛场车队 '; $Mail\u To\u Admin\u ID=$employee\u email; $Mail\u Admin\u Subject=“员工详细信息”; $Mail\u Admin\u Header=“MIME版本:1.0\n”; $Mail_Admin_Header.=“内容类型:text/html;字符集=iso-8859-1\r\n”; $Mail\u Admin\u标头=“内容传输编码:8位\n”; $Mail\u Admin\u标头=“X优先级:1\n”; $Mail\u Admin\u Header.=“发件人:员工部门项目\r\n”; $Mail\u Admin\u标头=“X-MSMail-Priority:高\n”; 邮件($mail\u To\u Admin\u ID、$mail\u Admin\u Subject、$mail\u Admin\u Message、$mail\u Admin\u Header); //echo$序列号; //echo$employee_电子邮件; //模具(); echo“警报('已成功添加并检查您的邮件以了解您的详细信息。!!!”);window.location='add-employee.php';
mail()返回true并不意味着电子邮件已成功送达。您可能会从接收电子邮件的服务器上收到“邮件送达失败”消息(例如,没有这样的用户名)几分钟后,我想这就是我说的?!Ben,你能发一些关于实际邮件递送检查的短信吗?inbulid php函数中没有选项可以知道收件人是否收到邮件,即使我们无法检测它是否是有效的邮件id,这不是答案,甚至不是正确的问题。为什么它不发送电子邮件欢迎到Stack Overflow!虽然此代码片段可能是解决方案,但确实有助于提高您的文章质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您的代码建议的原因。
<?php 

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

 ?>
if(@mail($emailRecipient, $subject, $message, $headers))
{
  echo "Mail Sent Successfully";
}else{
  echo "Mail Not Sent";
}
//$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>";