Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.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
不带STMP:Mail()和PHPMailer的PHP邮件在发送时回显失败_Php_Email_Localhost_Phpmailer_Bluehost - Fatal编程技术网

不带STMP:Mail()和PHPMailer的PHP邮件在发送时回显失败

不带STMP:Mail()和PHPMailer的PHP邮件在发送时回显失败,php,email,localhost,phpmailer,bluehost,Php,Email,Localhost,Phpmailer,Bluehost,我正试图从我们的网站发送一封电子邮件,该网站位于BlueHost上,其中包含一个附件。我们发现,截至2015年8月,我们的原始脚本将不再向我们的电子邮件发送电子邮件 快进到现在,我们正试图解决这个电子邮件问题,但没有运气。最初,我们的代码使用旧的mail()方法。下面是尝试对此方法的修复(不会返回任何PHP/log错误): Tye将其置于邮件输出的开头和结尾: Ob_start(); Ob_end_clean() 经过大量的测试和调试,最终的代码如下: 事实证明,PHPMailer的许多示例

我正试图从我们的网站发送一封电子邮件,该网站位于BlueHost上,其中包含一个附件。我们发现,截至2015年8月,我们的原始脚本将不再向我们的电子邮件发送电子邮件

快进到现在,我们正试图解决这个电子邮件问题,但没有运气。最初,我们的代码使用旧的mail()方法。下面是尝试对此方法的修复(不会返回任何PHP/log错误):


Tye将其置于邮件输出的开头和结尾:
Ob_start();

Ob_end_clean()

经过大量的测试和调试,最终的代码如下:



事实证明,PHPMailer的许多示例和答案都是输入错误或错误的引用。对于希望不使用SMTP并包含附件的任何人,此代码应该在BlueHost上起作用(至少发送电子邮件)。

首先,您要在标头之前输出。启用错误报告,检查它们是什么,然后重新启动。
mail()
函数的许多问题之一是,它确实没有向您提供有关其失败原因的反馈。查找邮件发生了什么的地方是本地邮件服务器的日志文件。假定mail函数所做的只是调用sendmail二进制文件,该二进制文件打开了到localhost的同步SMTP连接,那么您应该会发现直接从PHPMailer到localhost的SMTP要快得多,并且更容易诊断(因为您可以启用
SMTPDebug
)。此外,您没有收到任何错误消息,因为您没有打印错误消息!如果发送呼叫失败,则回显
$mail->ErrorInfo
。@Synchro:Added
$mail->ErrorInfo,除了我已经输出的以外,没有其他输出。它只是失败了。您要求PHPMailer抛出异常(通过将
true
传递给构造函数),但没有try/catch块围绕它,因此只要调用
send()
,脚本就会死掉(出现致命的未捕获异常),无论成功还是失败,它都不会到达您的
echo
输出。
尝试{if(!$mail->send()){echo“TRUE”;//完成。重定向到感谢页面。header(“Location:./Sales_Quotes.html”);echo“Form Submitted!”;/*重定向浏览器*/exit();/*良好做法*/}否则{die(“错误:PHP mail()失败!\r\n”.“\r\n”);echo$mail->ErrorInfo;}}catch(phpmailerException$e){echo$e->errorMessage();//PHPMailer错误消息}catch(Exception$e){echo$e->getMessage();//其他错误消息}
您是这样的意思吗?只是尝试了一下,还是没有错误。