首先,我尝试了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);
}
在我能够测试这个之前,我还需要做一些工作。