Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.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
PHP邮件()错误500_Php_Email - Fatal编程技术网

PHP邮件()错误500

PHP邮件()错误500,php,email,Php,Email,作为网站注册过程的一部分,我添加了邮件确认。但是由于某种原因,邮件函数会在其中抛出一个内部服务器错误 奇怪的是,如果我创建一个测试脚本,使用完全相同的电子邮件(所有参数都相同),它工作正常,并发送电子邮件 邮件是从类中的函数发送的,以防有所帮助。我没有发布代码,因为它不是真正相关的,即使我尝试mail('email@email.com","主题","电邮",失败,错误为500 服务器错误日志根本没有显示任何内容,有人知道是什么导致了这样的问题吗 技术: 服务器通过mod\u fastcgi运行p

作为网站注册过程的一部分,我添加了邮件确认。但是由于某种原因,邮件函数会在其中抛出一个内部服务器错误

奇怪的是,如果我创建一个测试脚本,使用完全相同的电子邮件(所有参数都相同),它工作正常,并发送电子邮件

邮件是从类中的函数发送的,以防有所帮助。我没有发布代码,因为它不是真正相关的,即使我尝试
mail('email@email.com","主题","电邮",失败,错误为500

服务器错误日志根本没有显示任何内容,有人知道是什么导致了这样的问题吗

技术: 服务器通过
mod\u fastcgi
运行php,但如果切换到
mod\u suphp
,也会出现此问题

更新: 更新: 我将尝试更好地解释这一点,如果使用相同的参数从另一个文件调用mail函数,它将非常有效。这里的问题是,与邮件功能结合使用会导致错误500。调用它的文件的其余部分也很好,如果我对邮件函数进行注释,一切都正常。调用它的方式是对文件的AJAX请求,该文件调用发送邮件的函数(以防万一)

更新2: 对于目前的答案,以下是我之前没有分享的更多信息: 操作系统:CentOS 5.8版 当我说error500时,我的意思是服务器只返回一个http500状态码。 服务器未在任何错误日志中显示任何内容 最重要的是,如果我创建一个名为test.php的文件,其中只包含
mail('address@domain.com“,”主题“,”消息“
,它工作得很好。从另一个文件调用时,返回500个状态代码。 我想问的是,是否有人知道,可能是从经验来看,是什么导致了这种情况

更新3: 昨天有人遇到了同样的问题:

更新4
经过一些测试,我发现只有在通过AJAX调用脚本时才会返回500 stats代码。如果我创建了一个名为test.php的文件,我只需放置邮件函数并对其进行测试,它就可以工作。通过AJAX调用它没有任何想法吗?

您的问题非常混乱

您并没有说明正在运行什么操作系统,也并没有提供配置的详细信息:在MSWindows上,php的邮件功能充当SMTP客户端。在POSIX操作系统(包括Linux)上,它执行一个命令程序来发送电子邮件。SMTP客户端需要知道要连接的服务器和端口。POSIX函数需要配置来告诉它运行哪个程序

您不断引用500错误-您是指浏览器中的HTTP 500状态代码吗


邮件程序/服务器的日志显示了什么?如果这是posix平台,请尝试更改php.ini以运行shell脚本来记录操作和参数。

根据您提供的输入量,很难判断错误是如何发生的

错误:500是间隔服务器错误,可能有多个发生原因

  • 格式错误的php cgi脚本
  • .htaccess或其他配置文件中的指令无效
  • 文件系统和服务器软件施加的限制。 可能您正在附加一个要发送的文件
  • 标题中缺少换行符(\r\n)

请尝试此

中列出的每个解决方案。经过几个小时的测试,我发现了问题! 我使用了
window.location
在AJAX调用完成后,在其回调函数中将用户重定向到一个新页面


显然,如果在对使用
mail()
函数的php脚本进行AJAX调用后对其进行修改,那么服务器将在请求中返回500个状态代码启用php调试并发布错误消息。请参阅:当PHP错误报告设置为all时,仍然会给出错误500。我已经安装了自己的调试系统,但邮件功能似乎“覆盖”了所有内容,并转到错误500。如果代码失败,Apache向您提供HTTP状态,则无法获取任何日志。它必须在apache、虚拟主机或至少php框架日志中。可能您的函数是用
错误输出抑制
功能
@
调用的,请参见邮件函数不是用
@
调用的,尽管我用它尝试过,但发现它仍然会出现错误500。我知道这是邮件功能,因为我逐行注释了测试错误的来源。奇怪的是,完全相同的邮件函数,从另一个文件调用时具有相同的参数,可以正常工作……您确定是邮件函数导致了错误,而不是其他原因吗。例如,如果您注释掉call to mail()函数,脚本是否会按预期返回?我已经添加了有关该问题的所有信息。我希望有人曾经遇到过类似的情况,邮件功能会在一个脚本上导致内部服务器错误,而在另一个脚本上工作正常。您没有提供相关的php.ini设置(PHP似乎在运行邮件程序时遇到了问题-请检查邮件程序的位置,并且您可以从命令行运行它)问题不在于邮件程序,正如我在问题中所说的,具有相同参数的相同邮件函数在其他地方也能正常工作