phpmailer-使用php

时间:2018-08-15 11:23:36

标签: php command-line phpmailer

我的行为很奇怪。我正在使用Win7和PHPMailer类上安装的xampp。 当我运行一个简单的.php脚本从浏览器发送邮件时,一切正常,但是如果我使用命令提示符和php sufix(c:..... php c:\ xampp \ htdocs ... ... script.php)我收到以下错误消息 “ Helo命令被拒绝:需要标准主机名” 有什么想法吗?

我可以在ECHLO中看到,从浏览器运行时,我获得了正确的服务器地址(我的主机名),但是当我从命令promt访问脚本时,我获得了作为主机名的计算机名。可以更改它或将其设置为像在浏览器中一样运行吗?我想这就是问题所在,主机名。

谢谢

2 个答案:

答案 0 :(得分:1)

就像其他人提到的那样,当您不在HTTP环境中,并且如果主机名设置不正确,或者由于某种原因PHP无法使用您的主机名时,可能很难获得HELO中使用的主机名/ EHLO命令。您可以通过设置Hostname property来明确提供一个:

$mail->Hostname = 'myserver.example.com';

请注意,这与HostHelo属性不同;有关差异,请参阅文档。

答案 1 :(得分:0)

该脚本很可能依赖于某个环境变量来用作其自己的主机名,可能是$_SERVER['HTTP_HOST']。在您的网络服务器上运行时会设置此设置,但由于不是HTTP环境,因此不能通过命令行运行。

如果启用完整的错误报告,则错误输出中可能会显示以下内容:

PHP Notice:  Undefined index: HTTP_HOST in script.php

您可以强制变量在命令行中存在,如下所示:

HTTP_HOST=example.com php -f script.php