отправка электронной почты из exec в пределах php - PullRequest
0 голосов
/ 25 октября 2018

У меня есть несколько вопросов, связанных с передачей параметров в качестве переменной моей почтовой команде в exec в pHP.

Вот код, который работает:

exec('echo "This is mail tesing" | /bin/mail -s "Testing" -a myresults.csv abc@mymail.com  2>&1', $output2 );

Что я хочу сделатьis: 1) Передать результат как переменную, например, у меня есть другая команда exec в PHP для выполнения скрипта 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 )

отображение переменной адреса электронной почты aka echo $ varEmail дает адрес электронной почты, введенный пользователем.

Я думаю, я не знаю, как передать параметр в качестве переменной в этомкоманда.Любая помощь высоко ценится.

Спасибо,

1 Ответ

0 голосов
/ 25 октября 2018

В строке, которую вы указали, строка, содержащая команду, данную exec, заключена в простые кавычки.Поэтому переменные php внутри этой строки не заменяются.Вместо этого вы можете использовать это (объединить $varEmail со строкой, используя .):

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

Другим решением было бы использование двойных кавычек, но тогда вам пришлось бы избегать двойных кавычек оболочкикоманда:

exec("echo \"Test mail using mail\" | /bin/mail -s \"Testing\" -a results.csv $varEmail  2>&1", $output2 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...