Некоторые замечения по работе кода
Чтобы данный код работал в вашей ситуации, необходимо внести некоторые изменения.
Сообщение электронной почты отправляется по адресу $to_email.
Строку:
putenv('GNUPGHOME=/tmp/.gnupg');
следует изменить так, чтобы она отражала местонахождение набора ключей GPG.
В системе автора Web-сервер запускается от имени пользователя nobody, начальным каталогом которого является /tmp/.
Функция tempnam () используется для создания уникального имени временного файла.
Можно указать и каталог, и префикс имени файла.
Поскольку подобные файлы создаются и удаляются в течение буквально секунды, их имена не имеют особого значения.
В данном случае мы указали префикс ' рдр', но разрешили РНР использовать системный каталог для хранения временных файлов.
Оператор:
$command = '/usr/local/bin/gpg а '.
'-—recipient 'Luke Welling <luke@tangledweb.com.au>' '.
'-—encrypt -о $outfile $infile';
настраивает команду и ее параметры для вызова программы gpg.
Его можно изменить в соответствии со своими потребностями.
Как и при использовании командной строки, GPG необходимо указать, какой ключ применять для шифрования сообщений.
Оператор:
system($command, $result) ;
запускает на выполнение инструкции, записанные в строке $ command, и присваивает возвращаемое значение переменной $ result.
Возвращаемое значение, в принципе, можно опустить, но оно позволяет использовать условный оператор if и сообщить пользователю, если чтото будет выполнено неудачно.
Когда временные файлы становятся ненужными, они удаляются с помощью функции unlink ().
Это значит, что пользовательская почта в незашифрованном виде хранится на сервере в течение достаточно короткого промежутка времени.
Более того, если Web-сервер выйдет из строя во время исполнения, файл останется на сервере.