Verschlüsseln
Wir möchten also eine E-Mail verschicken, deren Inhalt verschlüsselt ist, und nur der Empfänger soll sie lesen können. Ein einfaches PHP-Skript dazu sieht aus wie in Listing 2.
Listing 2
0) { $content = file_get_contents($outfile); unlink($outfile); mail($recipient, $emailSubject, $content, $emailHeader); echo 'E-Mail erfolgreich versandt.'; } else { echo 'Es gab ein Problem. Rückgabewert: '.$result; }
Das Wichtigste ist hier der Befehl in Zeile 15. Der Pfad zum Schlüsselbund sowie ein Empfänger werden angegeben, es wird der Verschlüsselungsmodus genutzt und eine Ausgabedatei angegeben. Mit -a wird in den ASCII-Modus gewechselt, der für E-Mails besser geeignet ist als das Binärformat, das bei Dateiverschlüsselungen bevorzugt werden sollte, da bei der ASCII-Variante 33% mehr Speicherplatz benötigt werden.
Das Heimverzeichnis (hier auf /var/www/project/.gnupg gesetzt) muss vom Benutzer der das Skript ausführt lesbar und beschreibbar sein, also entweder der aktuelle Benutzer an der Konsole oder der Webserver (www-data o. Ä.).
Je nachdem ob die Ausgabe des gpg-Kommandos direkt ausgegeben, zurückgegeben oder verworfen werden soll, kann natürlich statt dem system()-Aufruf auch gerne exec(), shell_exec() oder passthru() benutzt werden.