【问题标题】:why do I get error while running php mail function from cmd为什么从 cmd 运行 php 邮件功能时出现错误
【发布时间】:2021-03-27 19:40:35
【问题描述】:

我正在尝试使用 cmd 中的 php 邮件功能,使用以下命令:

php -r "\$from = \$to = 'your.emailaddress@gmail.com'; \$x = mail(\$to, 'subject'.time(), 'Hello World', 'From: '. \$from); var_dump(\$x);"

我收到此错误:解析错误:语法错误,意外标记“”,预期第 1 行命令行代码中的文件结尾 可能是因为目录错误?或者我在代码中遗漏了什么?

【问题讨论】:

  • 如果你把引号倒过来,用单引号包裹 PHP 代码会更容易。这样您就不必转义变量印记。
  • @weirdan 我试过了,但没用,但我不确定我是否做得对,因为我没有很好地理解你所说的。这是正确的吗 ? '(php -r '$from ="hello" $to = "your.emailaddress@gmail.com"; $x = mail($to, "subject".time(), "Hello World", "From:" . $from); var_dump($x);')'
  • 将该行粘贴到我的 ubuntu 终端中。作品。用 bash 和 fish 测试。你是在 Windows 命令提示符下这样做的吗?
  • 是的,我正在使用 Windows
  • Windows CMD 不使用反斜杠进行转义,也不使用美元符号(由 PHP 使用)作为插值变量。

标签: php cmd


【解决方案1】:

\ 字符在 CMD 中没有任何作用——只要去掉它。 $ 也没有,所以不需要转义:

C:\>php -r "$from = $to = 'your.emailaddress@example.com'; $x = mail($to, 'subject'.time(), 'Hello World', 'From: '. $from); var_dump($x);"
PHP Warning:  mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in Command line code on line 1

Warning: mail(): Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in Command line code on line 1
bool(false)

这是否是一个好主意留给读者练习;-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-25
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    相关资源
    最近更新 更多