.NetCore使用证书对电子邮件进行签名



首先,我尝试了FluentMail,但我的.NetCore.版本似乎坏了

我正在创建一封这样的电子邮件:

var email = new MimeMessage();
// Put all the data in the email
X509Certificate2 cert = new X509Certificate2("fileName");

问题是,我找不到任何关于如何实际执行签名的示例。我能找到的最好的是签名和加密,但电子邮件不能加密。这一点非常重要。

现在有人知道如何签署电子邮件吗(包括发件人、主题、正文等(。如果有任何帮助,我们将不胜感激。

我可能应该补充一点,证书将位于某个文件路径,程序将部署在Linux Docker容器上。因此,代码不能只在Windows上运行。

对不起,我应该忽略了显而易见的东西吗。这是我第一次尝试通过代码发送电子邮件。

更新0:请注意,这是否因为WindowsSecureMimeContext(..)而有效。(我知道我只在下面剪下的代码中签名(。

X509Certificate2 cert = new X509Certificate2("fileName");
using (var context = new WindowsSecureMimeContext(StoreLocation.LocalMachine))
{
email.Body = MultipartSigned.Create(context, new CmsSigner(cert), email.Body);
}

更新1:我认为这应该有效:

X509Certificate2 cert = new X509Certificate2("fileName");
using (var context = new DefaultSecureMimeContext())
{
email.Body = MultipartSigned.Create(context, new CmsSigner(cert), email.Body);
}

我认为这应该是我的问题的答案(示例只在正文上签名(:

X509Certificate2 cert = new X509Certificate2("fileName");
using (var context = new DefaultSecureMimeContext())
{
email.Body = MultipartSigned.Create(context, new CmsSigner(cert), email.Body);
}

在我能够测试这个之前,我还需要做一些工作。

相关内容

  • 没有找到相关文章

最新更新