如何解密加密的电子邮件

本文关键字:加密 电子邮件 解密 何解密 | 更新日期: 2023-09-27 18:01:34

我用Chilkat . net 4发送了一封电子邮件。此电子邮件使用。pfx文件签名,并使用收件人的。cer文件加密。这两个文件存储在Certificates mmc.

的"Trusted People"文件夹中。

现在我试着接收&和奇尔卡特一起解密这封邮件。它可以工作,但电子邮件无法解密。我的。pfx文件和发件人的。cer文件总是在"可信的人"文件夹中。我试图用AddPfxSourceData方法添加我自己的私人证书,它返回TRUE,但什么也没发生。我使用的所有Chilkat对象的LastErrorText属性没有任何错误。

这是我的代码(邮件)。解密后总是FALSE):

            MailMan pop3 = new Chilkat.MailMan();
            pop3.UnlockComponent("30-day trial");
            pop3.MailHost = "pop.server.net";
            pop3.MailPort = 110;
            pop3.PopUsername = "my@email.com";
            pop3.PopPassword = "mypassword";
            bool succes = pop3.AddPfxSourceFile("C:''my_pfx.pfx, "mypfxpassword");
            EmailBundle emailBundle = pop3.CopyMail();
            for (int i = 0; i < emailBundle.MessageCount; i++)
            {
                Email mail = emailBundle.GetEmail(i);
                if(mail.ReceivedEncrypted && mail.Decrypted)
                    Console.WriteLine(mail.Body);
                else
                    Console.WriteLine("Cannot decrypt this mail");
            }

有什么想法吗?

UPDATED:我用来发送加密电子邮件的代码:

            Chilkat.MailMan mailman = new Chilkat.MailMan();
            mailman.UnlockComponent("30-day trial");
            mailman.SmtpHost = "smtp.server.net";
            mailman.SmtpUsername = "sender@mail.com";
            mailman.SmtpPassword = "senderpassword";
            Chilkat.Email email = new Chilkat.Email();
            email.Subject = "This is an encrypted email !";
            email.Body = "This is the content of a digitally encrypted mail !";
            email.From = "sender@mail.com";
            email.AddTo("My Recipient", "my@email.com");
            // Certificate of my@email.com
            Chilkat.Cert recipientCert = new Chilkat.Cert();
            recipientCert.LoadFromFile("C:''recipient_cert.cer");
            email.SetEncryptCert(recipientCert);
            email.SendEncrypted = true;
            bool success = mailman.SendEmail(email);
            if (success)
                Console.WriteLine("Mail sent !");

如何解密加密的电子邮件

我最终在两台不同的计算机上尝试了这个场景,一台用于发送方,一台用于接收方,并且它可以工作。我认为这是因为我使用的两个。pfx文件的发件人&收件人是自动生成的&在同一台电脑上自动签名…我在每台电脑上生成了一个新的。pfx文件,它工作得很好:)