Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/133.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
即使SMTP服务器正在运行且PHP mail()返回true,也无法在PHP中传递邮件_Php_Xampp - Fatal编程技术网

即使SMTP服务器正在运行且PHP mail()返回true,也无法在PHP中传递邮件

即使SMTP服务器正在运行且PHP mail()返回true,也无法在PHP中传递邮件,php,xampp,Php,Xampp,我正在尝试使用PHP发送一封简单的邮件。我曾尝试使用telnet检查Mercury是否正在运行,它的回答是“是”。同时mail()返回true,因此我的脚本应该可以,但是邮件仍然无法发送,这个问题的原因可能是什么 以下是我的PHP代码: $subject = "Simple mail"; $message = "Here is a test mail"; $to = "me@gmail.com"; $from = "me@test.com"; $header = "From: ".$from;

我正在尝试使用PHP发送一封简单的邮件。我曾尝试使用telnet检查Mercury是否正在运行,它的回答是“是”。同时mail()返回true,因此我的脚本应该可以,但是邮件仍然无法发送,这个问题的原因可能是什么

以下是我的PHP代码:

$subject = "Simple mail";
$message = "Here is a test mail";
$to = "me@gmail.com";
$from = "me@test.com";
$header = "From: ".$from;

if(mail($to, $subject, $message, $header))
   print "success<br>";
else
   print "fail<br>";
因此,如果邮件服务器运行正常,并且脚本正确,那么导致邮件无法传递的唯一问题应该是邮件从未到达服务器,那么我可以做些什么来找出错误所在并解决它


我已按照重要通知进行了一些更改。

在XAMPP中,您使用的是“C:\mailtodisk\mailtodisk.exe”而不是邮件服务器。它将所有邮件写入C:\xampp\mailoutput文件夹,而不是发送到internet。

首先要检查smtp服务器日志…T 20120725 161556 501017fa连接从127.0.0.1 T 20120725 161557 501017fa T 20120725 161627 501017fa连接以127.0.0.1秒31关闭。逝去。我刚刚看到这条消息,但找不到重要的“邮件发件人”和“Rcpt收件人”命令,我不知道为什么,有时它甚至没有在日志文件中进行任何修改,因此邮件似乎在31秒内都没有到达服务器,以便发邮件?听起来像是超时了。哦,还有:你确定要使用你在php配置中指定的奇怪的“mailtodisk”吗?不管使用哪种方式,我只想成功地发送一封电子邮件,我已经为此工作了两天,但仍然找不到问题所在。如果我想使用安装在XAMPP中的Mercury发送电子邮件,我应该如何修改php.ini?
[mail function]
; XAMPP: Comment out this if you want to work with an SMTP Server like Mercury
; SMTP = localhost
; smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost  

; XAMPP IMPORTANT NOTE (1): If XAMPP is installed in a base directory with spaces (e.g. c:\program filesC:\xampp) fakemail and mailtodisk do not work correctly.
; XAMPP IMPORTANT NOTE (2): In this case please copy the sendmail or mailtodisk folder in your root folder (e.g. C:\sendmail) and use this for sendmail_path.  

; XAMPP: Comment out this if you want to work with fakemail for forwarding to your mailbox (sendmail.exe in the sendmail folder)
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"

; XAMPP: Comment out this if you want to work with mailToDisk, It writes all mails in the C:\xampp\mailoutput folder
sendmail_path = "C:\mailtodisk\mailtodisk.exe"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off

; Log all mail() calls including the full path of the script, line #, to address and headers
;mail.log = "C:\xampp\php\logs\php_mail.log"