簡體   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