#php #unix #sendmail #mailx
#php #unix #отправка почты #mailx
Вопрос:
Итак, я хотел бы иметь возможность вызывать почтовую функцию unix из PHP-скрипта. Да, я знаю, что в PHP есть встроенная функция почты, но у меня возникли проблемы с конфигурацией PHP на моем сервере в интрасети, и я изо всех сил пытался решить, но безуспешно. Я подумал, что было бы проще просто вызвать функцию почты Unix (поскольку я знаю, что она работает с другими скриптами) из PHP вместо того, чтобы пытаться повторно настроить установку PHP, что может в конечном итоге испортить работу других сайтов. Может ли кто-нибудь объяснить, как это сделать, а также как я могу настроить шаблон электронной почты для отправки по электронной почте? Заранее спасибо!!
Бретт
Ответ №1:
Прямой вызов команд unix требует, чтобы вашей установке php было разрешено выполнять команды оболочки, что опасно и действительно должно выполняться только в тех случаях, когда нет подходящей чистой php-оболочки. В php есть подходящая оболочка. Какие проблемы у вас возникли с этим?
Чтобы ответить на ваш вопрос, посмотрите на функцию exec(). Если php не настроен на запрет этого, именно так вы вызываете внешние команды из php. Я все еще не рекомендую этого делать.
Для генерации и отправки электронной почты из веб-приложения php я нахожу, что PHPMailer является отличным простым в использовании классом php.
Ответ №2:
Попробуйте что-то вроде system('/usr/bin/mailx -s "Your Subject" rcpt@example.org < /tmp/mailfile.txt')
Будьте осторожны, если входные данные принимаются от пользователя, сначала прочитайте эти:
- http://php.net/manual/de/function.system.php
- http://www.php.net/manual/en/function.escapeshellcmd.php
- http://www.php.net/manual/en/function.escapeshellarg.php
В целом, было бы намного безопаснее и переносимее использовать почтовые функции, доступные в PHP. Кроме того, ваш разработчик может отключить систему и аналогичные функции (с помощью safe_mode).