Ich habe die Zeilen anstelle der vorhandenen $message eingefügt:
<?php
require_once "Swift-5.0.3/lib/swift_required.php"; // Swift initialisieren
// Create the Transport the call setUsername() and setPassword()
$transport = Swift_SmtpTransport::newInstance('smtp.1und1.de', 587, 'ssl')
->setUsername('smtp-username')
->setPassword('smtp-pw')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
// $message = Swift_Message::newInstance(); // funktionierende Version ohne Verschlüsselung
$message = Swift_SignedMessage::newInstance();
$smimeSigner = Swift_Signers_SMimeSigner::newInstance();
$smimeSigner->setSignCertificate('/Certificate/mmg.crt', '/Certificate/mmg.crt');
$smimeSigner->setEncryptCertificate('/Certificate/rg.crt');
$message->attachSigner($smimeSigner);
// $smimeSigner->setSignThenEncrypt(false);
$message
->setFrom(array('absender-email' => 'Name der Absender EMail'))
->setTo(array('ziel-EMail'))
->setSubject('Betreff der EMail');
$mailtext = "Das ist jetzt der Mail-text ohne";
$message->setBody($mailtext, 'text/plain');
$mailer = Swift_Mailer::newInstance(Swift_MailTransport::newInstance());
$result = $mailer->send($message);
if ($result == 0) {
die("Mail konnte nicht versandt werden.");
}
header("Location: '
http://danke-Anfrage.html'");
exit;
header("Content-type: text/html; charset=utf-8");
?>
Und dafür bekomme ich diese Fehlermeldung:
Warning: tempnam() [function.tempnam]: SAFE MODE Restriction in effect. The script whose uid is 1839 is not allowed to access /tmp owned by uid 0 in /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php on line 20
Fatal error: Uncaught exception 'Swift_IoException' with message 'Failed to retrieve temporary file name.' in /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php:23 Stack trace: #0 /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/Signers/SMimeSigner.php(214): Swift_ByteStream_TemporaryFileByteStream->__construct() #1 /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/SignedMessage.php(104): Swift_Signers_SMimeSigner->signMessage(Object(Swift_SignedMessage)) #2 /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/SignedMessage.php(78): Swift_SignedMessage->doSign() #3 /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/Transport/MailTransport.php(144): Swift_SignedMessage->toString() #4 /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/Mailer.php(86): Swift_Transport_MailTransport->send(Object(Swift_SignedMessage), Array) #5 /var/www/web628/html/test2.php(35): Swift_Mailer->send(Object(Swift_SignedMessage)) #6 {main} thrown in /var/www/web628/html/Swift-5.0.3/lib/classes/Swift/ByteStream/TemporaryFileByteStream.php on line 23
Was mir auffällt, ist, dass wenn ich den Pfad zu den Certifikaten falsch schreibe (ZB /falsch/rg.crt), dann ändert sich die Fehlermeldung nicht. Deswegen glaube ich, dass der Fehler schon früher passieren muss.