Я отправил сообщение электронной почты с помощью Chilkat .NET 4. Это письмо подписано файлом .pfx и зашифровано файлом .cer получателя. Эти 2 файла хранятся в папке «Надежные люди» в сертификате mmc.
Теперь я пытаюсь получить и расшифровать это письмо с помощью Chilkat. Это работает, но электронная почта не расшифровывается. Мой файл .pfx и файл .cer отправителя всегда находятся в папке «Надежные люди». Я попытался добавить свой личный сертификат с помощью метода AddPfxSourceData, он возвращает TRUE, но ничего не происходит. В свойствах LastErrorText всех объектов Chilkat, которые я использовал, нет ошибок.
Это мой код (mail.Decrypted всегда 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");
}
Есть идеи?
ОБНОВЛЕНО : код, который я использовал для отправки зашифрованной электронной почты:
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 !");