PHP邮件不发送但没有错误

时间:2017-10-14 09:40:01

标签: php email

所以我有一个发送电子邮件的脚本,它可以在我的VPS上的一个域上运行,但不会在另一个域上运行,这非常令人困惑!我检查了所有smtp细节......等等。并且看不出任何理由。该脚本运行就好像它成功并且没有错误并且变量全部到位。

如果有任何想法会非常感激!

<?php
$email=$_POST['email'];
$name=$_POST['name'];
$business=$_POST['business'];
$town=$_POST['town'];
$phone=$_POST['phone'];
$rpo=str_replace("rpo", "RPO",$_POST['rpo']);
$retained=str_replace("retained", "Retained",$_POST['retained']);
$ats=str_replace("ats", "ATS",$_POST['ats']);

$interest=$rpo . ' ' . $retained . ' ' . $ats;
$interest=str_replace('','<br>',$interest);

$msg = "You've received a new enquiry from $name at $business<br>
They are based in $town and interested in:<br>
$interest<br>
You can contact them on:<br>
<b>Phone: </b>$phone<br>
<b>Email: </b>$email<br>
This is an automatically generated email from the company website generated from http://example.com";

$msg = wordwrap($msg,70);

mail('example@example.com','New Enquiry',$msg);

header("location:http://example.com");
?>

1 个答案:

答案 0 :(得分:1)

试试这个以找出问题所在

$success = mail('example@example.com','New Enquiry',$msg);
if (!$success) {
   print_r(error_get_last()['message']);
}

瞥一眼Php Mail Documentation

  

注意:   发送邮件时,邮件必须包含From标头。这可以使用additional_headers参数设置,或者可以在php.ini中设置默认值。   如果不这样做将导致类似于警告的错误消息:mail():&#34; sendmail_from&#34;未设置在php.ini或custom&#34; From:&#34;标头丢失。 From标头还设置了Windows下的Return-Path。

     

返回值

     

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

     

重要的是要注意,因为邮件被接受了   交付,并不意味着邮件实际上会达到预期的目的   目的地。

<强>更新 在评论仅用于测试之后,删除php文件中的每个代码,只需尝试最简单的调试方法

<?php
// the message
$msg = "First line of text\nSecond line of text";

// use wordwrap() if lines are longer than 70 characters
$msg = wordwrap($msg,70);

// send email
if(!mail("someone@example.com","My subject",$msg)){
    var_dump(error_get_last()['message']);
}
?>