Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
在php中从exec发送电子邮件_Php_Email - Fatal编程技术网

在php中从exec发送电子邮件

在php中从exec发送电子邮件,php,email,Php,Email,关于在pHP中将参数作为变量传递给exec中的mail命令,我没有什么问题 以下是有效的代码: exec('echo "This is mail tesing" | /bin/mail -s "Testing" -a myresults.csv abc@mymail.com 2>&1', $output2 ); 我想做的是: 1) 将结果作为变量传递,例如,我在PHP中有另一个exec命令,用于执行返回结果输出文件名称的python脚本。此输出文件需要通过电子邮件发送。 2)

关于在pHP中将参数作为变量传递给exec中的mail命令,我没有什么问题

以下是有效的代码:

exec('echo "This is mail tesing" | /bin/mail -s "Testing" -a myresults.csv abc@mymail.com  2>&1', $output2 );
我想做的是: 1) 将结果作为变量传递,例如,我在PHP中有另一个exec命令,用于执行返回结果输出文件名称的python脚本。此输出文件需要通过电子邮件发送。 2) 用户通过网站输入他的电子邮件地址,所以我想在/bin/mail命令中传递该电子邮件地址

这不起作用:

exec('echo "Test mail using mail" | /bin/mail -s "Testing" -a results.csv $varEmail  2>&1', $output2 );
网页上显示的错误:

 Send options without primary recipient specified. [1] => Usage: mail -eiIUdEFntBDNHRVv~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users )
回显电子邮件地址变量a.k.a echo$varEmail提供用户输入的电子邮件地址

我想,我不知道如何在这个命令中将参数作为变量传递。非常感谢您的帮助


谢谢,

在您提供的行中,包含给exec的命令的字符串被简单的引号括起来。因此,该字符串中的php变量不会被替换。 您可以改为使用它(使用
$varEmail
连接到字符串):

另一种解决方案是使用双引号,但随后必须转义shell命令的双引号:

exec("echo \"Test mail using mail\" | /bin/mail -s \"Testing\" -a results.csv $varEmail  2>&1", $output2 );

$varEmail
是bash还是php变量?如果是php,请使用
s插入字符串/变量。非常感谢!您建议的第一个解决方案本身适用于电子邮件!现在,需要在邮件中尝试结果附件。
exec("echo \"Test mail using mail\" | /bin/mail -s \"Testing\" -a results.csv $varEmail  2>&1", $output2 );