У меня есть сценарий powershell, который отправляет электронное письмо, которое вызывается из скрипта php. Все работает отлично, пока я не добавлю параметр body через переменную php. Эта линия работает:Отправка электронной почты с помощью скрипта Powershell из PHP
$oExec = $WshShell->Run("C:\\path\\powershell.exe C:\\path\\email.ps1 \"{$email}\" \"Test Body"");
Они рядом 2 оба не работают:
$oExec5 = $WshShell->Run("C:\\path\\powershell.exe C:\\path\\email.ps1 \"{$email}\" \"{$body}\"");
$oExec5 = $WshShell->Run("C:\\path\\powershell.exe C:\\path\\email.ps1 \"{$email}\" {$body}");
Я очень смущен, сначала я думал, что это было связано с содержанием переменной, но я чувствую, исключить эту возможность, установив $ body = "Test Body" точное значение, которое работает при жестком кодировании. Я в тупик, пожалуйста, помогите.
Если $ email или $ body содержат метахары оболочки и особенно символы '' ', то вы собираетесь вводить синтаксические ошибки командной строки. –
Да, я думал, что это как-то связано с этим. очевидно, что мой почтовый ящик будет строкой, как я могу добавить переменную string php в мой вызов командной строки powershell? – mgrenier
вы уже знаете, что вам нужно сделать, это убедиться, что содержимое вашей php-переменной отформатировано так, что они видны должным образом с помощью PowerShell, например, вы страдаете от эквивалента оболочки, вызванного уязвимостью в sql-инъекции. –