所以我有一个发送电子邮件的脚本,它适用于我的 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");
?>
Run Code Online (Sandbox Code Playgroud)
尝试一下看看问题出在哪里
$success = mail('example@example.com','New Enquiry',$msg);
if (!$success) {
print_r(error_get_last()['message']);
}
Run Code Online (Sandbox Code Playgroud)
浏览一下PHP Mail 文档
注意:发送邮件时,邮件必须包含 From 标头。这可以使用additional_headers参数来设置,或者可以在php.ini中设置默认值。如果不这样做,将导致类似于警告:mail():“sendmail_from”未在 php.ini 中设置或自定义“From:”标头丢失的错误消息。在 Windows 下,From 标头还设置 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']);
}
?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19670 次 |
| 最近记录: |