如何测试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>";