为什么从cmd运行php邮件函数时出错

为什么从cmd运行php邮件函数时出错,php,cmd,Php,Cmd,我尝试使用cmd中的php邮件函数,并使用以下命令: php -r "\$from = \$to = 'your.emailaddress@gmail.com'; \$x = mail(\$to, 'subject'.time(), 'Hello World', 'From: '. \$from); var_dump(\$x);" 我收到以下错误:解析错误:语法错误,意外标记“”,第1行的命令行代码中需要文件结尾 可能是因为错误的目录吗?或者我在代码中缺少了什么?字符在CM

我尝试使用cmd中的php邮件函数,并使用以下命令:

php -r "\$from = \$to = 'your.emailaddress@gmail.com'; \$x = mail(\$to, 'subject'.time(), 'Hello World', 'From: '. \$from); var_dump(\$x);"
我收到以下错误:解析错误:语法错误,意外标记“”,第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)

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

字符
\
在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)

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

如果将引号倒过来,并使用单引号来包装PHP代码,会更容易。这样你就不必逃避变量符号了。@怪人,我试过了,但它没有;除了我,我不工作;我不确定我是否做对了,因为我没有;你不能很好地理解你所说的。是这样吗?”(php-r'$from=“hello”$to=“您的。emailaddress@gmail.com“;$x=mail($to,“subject.time(),“Hello World”,“From:”.$From);var_dump($x);)”将该行粘贴到我的ubuntu终端中。作品用bash和fish测试。您是在windows命令提示符下完成的吗?是的,我使用的是windows CMD,它不使用反斜杠进行转义,也不使用美元符号(PHP使用)进行插值变量。如果您将引号倒过来,并使用单引号来包装PHP代码,这会更容易。这样你就不必逃避变量符号了。@怪人,我试过了,但它没有;除了我,我不工作;我不确定我是否做对了,因为我没有;你不能很好地理解你所说的。是这样吗?”(php-r'$from=“hello”$to=“您的。emailaddress@gmail.com“;$x=mail($to,“subject.time(),“Hello World”,“From:”.$From);var_dump($x);)”将该行粘贴到我的ubuntu终端中。作品用bash和fish测试。您是在windows命令提示符下执行此操作的吗?是的,我使用的是windows CMD。windows CMD对转义不使用反斜杠,对插值变量也不使用美元符号(PHP使用)。