所以我有一个发送电子邮件的脚本,它可以在我的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");
?>
答案 0 :(得分:1)
试试这个以找出问题所在
$success = mail('example@example.com','New Enquiry',$msg);
if (!$success) {
print_r(error_get_last()['message']);
}
注意: 发送邮件时,邮件必须包含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']);
}
?>