繁体   English   中英

.NetCore 用证书签名电子邮件

[英].NetCore Signing Emails with Certificate

首先,我尝试了 FluentEmail,但我的 .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);
}

在我能够测试之前,我仍然需要做一些工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM