⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testreadencryptedmail.java

📁 用java实现的对电子邮件进行加密解密及签名的算法接口
💻 JAVA
字号:
package cn.edu.scut.smimeapi.test;
import cn.edu.scut.smimeapi.*;
import javax.mail.internet.*;
import javax.mail.*;
import cn.edu.scut.certmgr.*;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class TestReadEncryptedMail
{
    public static void main(String[] args)
    {
            //receive mail from the pop3 host
          try
           {
               MimeBodyPart body=null;
               ReadEncryptedMail recmail=new ReadEncryptedMail();

               Message[] msg = recmail.getMail("202.38.212.1", "yhliu", "yhliu");
              System.out.println("您好,共收到"+msg.length+"封邮件");

              ProviderConfiguration pConfig = new ProviderConfiguration("Config.xml");
              ConfigFileItem configItem = pConfig.getConfigItem(0);
              KeyStoreManager ksMgr = new KeyStoreManager(configItem, "tanglab".toCharArray());//密码

              KeyStoreCertificates storeCerts = ksMgr.getAllCertificates();
               String Certalias=null;
               for(int i=0;i<storeCerts.itemCount();i++)
               {
                      if(storeCerts.getCertItem(i).hasPrivateKey())
                      {
                          String alias = storeCerts.getCertItem(i).getAlias();
                          Certalias = alias;
                      }
               }
               X509Certificate cert =(X509Certificate) ksMgr.getCertificate(Certalias);
               PrivateKey prikey=(PrivateKey)ksMgr.getKey(Certalias,"tanglab".toCharArray());

                  for (int i = 0; i <msg.length; i++)//msg.length
                  {
                     try
                     {
                       if (msg[i].isMimeType("application/pkcs7-mime"))
                       {   //加密邮件
                           System.out.println("您好,这是一封加密邮件");

                           body=recmail.ReadEncryptedMailByLocalkey((MimeMessage) msg[i],prikey,cert);
                           Object cont = body.getContent();
                           System.out.println("邮件解密后内容如下:");
                           if (cont instanceof String)
                           {
                               System.out.println((String) cont);
                           }
                           else if (cont instanceof Multipart)
                           {
                               Multipart mp = (Multipart) cont;
                               System.out.println(recmail.handleMultipart(mp));
                           }

                       }
                       else
                       {
                        System.out.println("It is not an encrpted mail");
                       }

                      System.out.println("-----------------------------------------");
                     }

                     catch (Exception ex)
                     {
                       System.err.println("邮件无法解密,可能数字证书不正确!"+ex);
                     }

                  }

               }
               catch (Exception ex)
               {
                System.err.println("收取加密邮件发生异常:"+ex);
               }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -