gpt4 book ai didi

PHP mail() 函数返回 false,但没有错误

转载 作者:可可西里 更新时间:2023-11-01 12:41:47 25 4
gpt4 key购买 nike

我正在使用 php 的 mail() 函数来通过电子邮件将联系表单的输入发送给相应的人。奇怪的是,该表单一直用于处理电子邮件,但有一天这一切都停止了,现在该函数返回 false,但一点错误都没有。

该站点位于共享主机上。当被问到这个问题时,他们建议我使用 smtp 中继 xx.xxx.x.xxx

如果我错了请纠正我,但是 mail() 函数没有为此提供规定,是吗?确定正确配置继电器取决于主机机器吗?

我的问题是:这看起来像是主机配置错误,还是我的代码?这是我使用的邮件代码示例:

$to = "xxx@xxx.co.za"; //to who?
$subject = "Website Contact: $mysubject";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "From: $fname<$email1>\r\n";
$headers .= "Reply-To: $email1\r\n";
$headers .= "Return-Path:$email1\r\n";
$headers .= "Content-Type: text/html; charset=UTF-8\r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable\r\n";
$msg2 = nl2br($msg);

$send = mail($to, $subject, $msg2, $headers); //process mail

if(!$send):
//error stuff here
endif;

非常感谢,西蒙

@eisberg - 我使用这样的自定义错误处理程序:

//error handler function
function customError($errno, $errstr){
$err = "\n".date('Y-m-d H:m:s')." Error: [$errno] $errstr";
$fh = fopen("errlog.txt", 'a+');
fwrite($fh, $err);
fclose($fh);
}
set_error_handler("customError", E_ALL);

这是否意味着我需要将 set_error_handler("customError", E_ALL); 更改为 set_error_handler("customError", -1);

最佳答案

mail() function returning false, but with no error

欢迎使用 PHP!

Does this seem like an error with the host config, or is it my code?

谁知道呢? mail() 是一个黑盒子,当出现问题时,您将无法从中找到有用的信息。

When asked about this, they recommended I use the smtp relay...

确实,您可能应该这样做。好好看看SwiftMailer ,一个优秀的、全面的、现代的 PHP 邮件库,可以直接与该 SMTP 服务器对话。它擅长构建 MIME 消息,就像您在上面煞费苦心地放在一起的消息一样。

其他受欢迎的选项包括 PEAR's Mail , Zend Framework's Zend_Mail ,经典中的经典,PHPMailer .

关于PHP mail() 函数返回 false,但没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5496461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com