Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 使用开放式SSL发送SMIME电子邮件时,未显示电子邮件正文_Email_Openssl_Multipart_Smime - Fatal编程技术网

Email 使用开放式SSL发送SMIME电子邮件时,未显示电子邮件正文

Email 使用开放式SSL发送SMIME电子邮件时,未显示电子邮件正文,email,openssl,multipart,smime,Email,Openssl,Multipart,Smime,使用OpenSSL创建s/mime电子邮件并发送时,接收电子邮件时会附加smime内容并验证签名,但电子邮件正文无法通过电子邮件客户端(如Mac Mail和ThunderBird)看到。所有网络邮件(如Gmail)都能正确阅读邮件正文 有人经历过这种情况吗?会请求检查邮件正文是否存在任何解析错误。大多数web邮件程序都有先进的mime解析技术,这些技术通常基于实时数据。但是像outlook、mac这样的客户严格遵循rfc标准进行邮件解析 我见过在rediffmail中正常打开但在yahoo上没有

使用OpenSSL创建s/mime电子邮件并发送时,接收电子邮件时会附加smime内容并验证签名,但电子邮件正文无法通过电子邮件客户端(如Mac Mail和ThunderBird)看到。所有网络邮件(如Gmail)都能正确阅读邮件正文


有人经历过这种情况吗?

会请求检查邮件正文是否存在任何解析错误。大多数web邮件程序都有先进的mime解析技术,这些技术通常基于实时数据。但是像outlook、mac这样的客户严格遵循rfc标准进行邮件解析


我见过在rediffmail中正常打开但在yahoo上没有打开的邮件,也见过在web界面上打开但在outlook上被丢弃的邮件。thunderbird也有类似的功能,但thunderbird几乎没有可用的扩展。如果您安装了它们,那么邮件将开始正确呈现。

您必须使用无分离的MIME签名。就这样,

int flags = PKCS7_STREAM;
p7 = PKCS7_sign(scert, skey, NULL, in, flags);
NO_DETACHED意味着OpenSSL将对所有MIME和signedData进行签名并打包到一个.p7m文件中,这意味着普通客户端只能在电子邮件中找到一个.p7m文件。只需使用DETACHED标志,OpenSSL将通过该标志在上一个MIME结构的末尾添加一个.p7s文件作为签名数据,而不是打包所有文件

第一:

flags |= PKCS7_DETACHED;
然后签字

p7 = PKCS7_sign(scert, skey, NULL, in, flags);
例如: