C#创建MIME消息?

C#创建MIME消息?,c#,mime,pkcs#7,C#,Mime,Pkcs#7,是否有任何内置功能可以在C#.Net中对文件进行MIME?我希望做的是: 将文件转换为MIME消息 将MIME消息签名到pcks 7 blob 模仿那个pkcs 7 blob 最后加密整个东西 关于我将如何做(不是加密或签名部分,而是模拟)有什么建议吗?复制文件究竟涉及到什么?有一个很好的商业软件包,只需少量费用: 与其与第三方库打交道,不如看看核心.NET库。利用课堂;它从.NET2开始就存在了 据我所知,裸.NET中没有这样的支持。您必须尝试一个第三方库。其中之一就是我们的。下面的代码显示了

是否有任何内置功能可以在C#.Net中对文件进行MIME?我希望做的是:

  • 将文件转换为MIME消息
  • 将MIME消息签名到pcks 7 blob
  • 模仿那个pkcs 7 blob
  • 最后加密整个东西

  • 关于我将如何做(不是加密或签名部分,而是模拟)有什么建议吗?复制文件究竟涉及到什么?

    有一个很好的商业软件包,只需少量费用:

    与其与第三方库打交道,不如看看核心.NET库。利用课堂;它从.NET2开始就存在了

    据我所知,裸.NET中没有这样的支持。您必须尝试一个第三方库。其中之一就是我们的。下面的代码显示了如何实现它:

    using Rebex.Mail;
    using Rebex.Mime.Headers;
    using Rebex.Security.Certificates;
    ...
    
    // load the sender's certificate and 
    // associated private key from a file 
    Certificate signer = Certificate.LoadPfx("hugo.pfx", "password");
    
    // load the recipient's certificate 
    Certificate recipient = Certificate.LoadDer("joe.cer");
    
    // create an instance of MailMessage 
    MailMessage message = new MailMessage();
    
    // set its properties to desired values 
    message.From = "hugo@example.com";
    message.To = "joe@example.com";
    message.Subject = "This is a simple message";
    message.BodyText = "Hello, Joe!";
    message.BodyHtml = "Hello, <b>Joe</b>!";
    
    // sign the message using Hugo's certificate 
    message.Sign(signer);
    
    // and encrypt it using Joe's certificate 
    message.Encrypt(recipient);
    
    // if you wanted Hugo to be able to read the message later as well, 
    // you can encrypt it for Hugo as well instead - comment out the previous 
    // encrypt and uncomment this one: 
    // message.Encrypt(recipient, signer) 
    
    使用Rebex.Mail;
    使用Rebex.Mime.Headers;
    使用Rebex.Security.Certificates;
    ...
    //加载发件人的证书并
    //文件中的关联私钥
    证书签名者=Certificate.LoadPfx(“hugo.pfx”,“密码”);
    //加载收件人的证书
    证书接收者=Certificate.loader(“joe.cer”);
    //创建MailMessage的实例
    MailMessage=新的MailMessage();
    //将其属性设置为所需的值
    message.From=”hugo@example.com";
    message.To=”joe@example.com";
    message.Subject=“这是一条简单的消息”;
    message.BodyText=“你好,乔!”;
    message.BodyHtml=“你好,乔!”;
    //使用Hugo的证书在邮件上签名
    消息。签名(签名者);
    //并使用Joe的证书对其进行加密
    消息。加密(收件人);
    //如果你希望雨果以后也能读到这封信,
    //您也可以为Hugo加密它-注释掉前面的
    //加密并取消对此项的注释:
    //邮件加密(收件人、签名者)
    

    (代码取自)

    是否可以从System.Net.Mail类中提取MIME编码的消息而不发送?@Rup:非常好。答案当然是否定的。至少,在深入研究内部MailWriter类之前是否定的。我显然误解了这个问题;如果他想将MIME附件作为电子邮件的一部分进行签名和加密,那么在将内容传递给附件之前,对其进行签名和加密就很容易了。如果Petey接受这个答案,我将奖励他。我的猜测是,一个商业包装将不会是理想的,但我不能为皮蒂说话。就我个人而言,我会走这条路去得到一些我认为有效的东西。“小”如果你不想要来源。