Email 使用开放式SSL发送SMIME电子邮件时,未显示电子邮件正文
使用OpenSSL创建s/mime电子邮件并发送时,接收电子邮件时会附加smime内容并验证签名,但电子邮件正文无法通过电子邮件客户端(如Mac Mail和ThunderBird)看到。所有网络邮件(如Gmail)都能正确阅读邮件正文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上没有
有人经历过这种情况吗?会请求检查邮件正文是否存在任何解析错误。大多数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);
例如: