Вызов GPG и отправка зашифрованной почты



В листинге 2 показан РНР-сценарий для вызова GPG и отправки зашифрованной почты

Листинг 2. send_private_mail .php — РНР-сценарий для вызова GPG и отправки зашифрованной почты

<?php
// Создание коротких имен переменных $from = $HTTP_POST_VARS['from']; $title = $HTTP_POST_VARS['title']; $body = $HTTP_POST_VARS['body']/

$to_email = 'chief@localhost';

// Укажите gpg, где находится набор ключей
// В данной системе начальным каталогом пользователя nobody является /tmp/
putenv('GNUPGHOME=/tmp/.gnupg');

// Создание уникального имени файла
$infile = tempnam('', 'pgp');
$outfile = $infile.'.asc';

// Запись текста, введенного пользователем в файл
$fp = fopen($infile, 'w');
fwrite($fp, $body);
fclose($fp);

// Настройка параметров команды
Scommand = "/usr/local/bin/gpg a \\
-—recipient 'Luke Welling <luke@tangledweb.com.au>' \\
-—encrypt o $outfile $infile"/

// Выполнение команды gpg
system($command, $result);

// Удаление незашифрованного временного файла
unlink($infile);

if($result==0)
{
$fp = fopen($outfile, 'r');
if (!$fp| Ifilesize ($outfile)==0)
{
$result = 1;
}
else
{

// Чтение зашифрованного файла
$contents = fread ($fp, filesize ($outfile));
// Удаление зашифрованного временного файла
unlink($outfile);

mail($to_email, $title, $contents, "From: $from\n");
echo '<h1>Сообщение отправлено</h1>
<р>Ваше сообщение зашифровано и отправлено.</р>
<р>Спасибо.'<р>';
}
}

if ($result!=0)
{
echo '<hl>Error:</hl>
<р>Ваше сообщение не может быть зашифровано,
поэтому оно не отправлялось.</р>
<р>Извините.</р?';
}

?>