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似乎在运行邮件程序时遇到了问题-请检查邮件程序的位置,并且您可以从命令行运行它)问题不在于邮件程序,正如我在问题中所说的,具有相同参数的相同邮件函数在其他地方也能正常工作