class.phpmailer.php ファイルでデータを変更します。
public $sign_cert_file = ’’;
public $sign_key_file = ’’;
public $sign_key_pass = ’’;
表示される場所よりも:
if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), null)) {
次のように変更します。
if (@openssl_pkcs7_sign($file, $signed, file_get_contents($this->sign_cert_file), array(file_get_contents($this->sign_key_file), $this->sign_key_pass), null)){
これは、ファイル インクルージョン file:// ではなく、オブジェクト $this->sign_key_file を介して取得したことを意味します。
一時名を変更するよりも:
$file = tempnam(’’, ’mail’);
...
$signed = tempnam("", "signed");
に:
$file = tempnam(’./tmp/’, ’mail’);
...
$signed = tempnam("./tmp/", "signed");
これは、tmp ディレクトリ サーバーで を使用していることを意味します。
次に、データの証明書ファイルを送信および配置する方法の例を示します。
require("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsMail();
$mail->AddAddress("email@example.com");
$mail->Subject = "Test 1";
$mail->Body = "Test 1 of PHPMailer.";
// CUSTOMISED SIGN EMAIL : START
$mail->sign_cert_file="/xxx/key.pem";
$mail->sign_key_file="/xxx/key.pem";
$mail->sign_key_pass="yyy";
// CUSTOMISED SIGN EMAIL : END
$mail->Send(); // Send encrypted email!