php WAMPSERVER不会以批处理模式发送电子邮件,但会从Web浏览器发送

goucqfw6  于 2023-06-04  发布在  PHP
关注(0)|答案(1)|浏览(117)

我有一个在Linux机器上运行的批处理PHP程序。我正在切换到Windows和WAMP。我创建了一个.BAT文件,以批处理模式运行PHP程序。如果我使用浏览器,一切都很好,但当我使用.BAT文件运行相同的程序时,PHP程序运行得很好(数据库更新等),除了电子邮件在最后没有发送。当批处理文件结束时,将显示消息“系统找不到指定的路径。”。我不知道它在寻找什么样的道路。显然,它找到了.BAT文件、PHP.exe和PHP应用程序。
我想我可以只有一个浏览器 meta刷新运行应用程序一分钟一次,但我宁愿使用任务调度,使它更像我以前的Cron作业。
什么可以阻止电子邮件以批处理模式发送?
下面是一个PHP代码的例子,它可以在浏览器中工作,但不能在批处理中工作。

<?php
echo "Start of mail test";
$headers   = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/html; charset=iso-8859-1";
$headers[] = "From: QSOMAP <example@gmail.com>";
//$headers[] = "Bcc: Mike Saeger<example@gmail.com>";
$headers[] = "Reply-To: N9MS <example@gmail.com>";
$headers[] = "X-Mailer: PHP/" . phpversion();
mail("example@gmail.com", 'Feedback on QSOMAP Upload', "<b>This upload was made possible by a donation from ".strtoupper("Mike Saeger")."</b><br>"."This is text". "The following pins were added to your map:<br>" . "processed", implode("\r\n", $headers));
?>

下面是执行上述代码的.BAT作业。这是一行代码。

C:\wamp64\bin\php\php7.4.33\php.exe C:/wamp64/www/mailtest.php

浏览器将发送此电子邮件。.BAT文件不会发送电子邮件。把我的浏览器连接到这个地址,发送电子邮件。如果我添加ECHO语句或数据库函数--它们都工作正常--只是没有电子邮件。
http://[myipaddress]/mailtest.php
PHP mail命令正在工作,因为当我使用Web浏览器运行PHP程序时,它可以工作。它只是不工作从一个windows.BAT命令。

ccrfmcuu

ccrfmcuu1#

实际上是tadman帮我解决了问题。
Apache和PHP.EXE使用了不同的php.ini文件,其中一个有效的文件位于C:\wamp64\bin\apache\apache2.4.54.2\bin中,该文件被 *WEB应用程序 * 使用。
批处理程序使用C:\wamp64\bin\php\php7.4.33中的程序。
虽然它们都有sendmail_path = line,但Apache的php.ini有sendmail_path = "C:\wamp\sendmail\sendmail.exe -t",而PHP.exe使用的是sendmail_path = "C: \wamp\sendmail\sendmail.exe -t -i",这导致了mail命令失败。

相关问题