【问题标题】:sending email from exec within php在php中从exec发送电子邮件
【发布时间】:2018-10-25 12:53:41
【问题描述】:

关于将参数作为变量传递给我在 pHP 中的 exec 中的邮件命令,我有几个问题。

这是有效的代码:

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 给出用户输入的电子邮件地址。

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

谢谢,

【问题讨论】:

  • $varEmail 是 bash 还是 php 变量?如果是 php,请使用 "s 插入字符串/变量。

标签: php email


【解决方案1】:

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

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

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

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

【讨论】:

  • 非常感谢!您建议的第一个解决方案本身适用于电子邮件!现在,需要尝试邮件中的结果附件。
猜你喜欢
  • 1970-01-01
  • 2011-03-04
  • 1970-01-01
  • 2011-09-16
  • 2014-05-23
  • 2016-04-13
  • 1970-01-01
相关资源
最近更新 更多