我正在尝试使用 PHP 发送加密和签名的电子邮件,当我终于让它工作时,它在 iOS 上不起作用,例如,当我尝试在 iPhone 上打开电子邮件时,我收到以下错误:"此消息已加密。安装包含您的加密身份的配置文件以解密此消息。证书已正确安装,如果我使用 Outlook 或从 Mac 发送邮件,它可以完美运行,问题是如果我尝试使用 PHP 发送它。
我得到了答案,似乎iOS只喜欢Cipher 3DES,所以我们需要告诉PHP使用它:
我使用以下代码进行加密:
$encrypt = @openssl_pkcs7_encrypt(
$signed,
$encrypted,
file_get_contents($this->encrypt_cert_file),
null,
0,
1
);
我改为:
$encrypt = @openssl_pkcs7_encrypt(
$signed,
$encrypted,
file_get_contents($this->encrypt_cert_file),
null,
0,
OPENSSL_CIPHER_3DES
);
它现在有效!我希望这对某人有所帮助。