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

📄 testreadencryptedandsignedmail.java

📁 用java实现的对电子邮件进行加密解密及签名的算法接口
💻 JAVA
字号:
package cn.edu.scut.smimeapi.test;
import cn.edu.scut.smimeapi.*;
import javax.mail.internet.*;
import javax.mail.*;
import org.bouncycastle.mail.smime.*;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2006</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class TestReadEncryptedAndSignedMail
{
    public static void main(String[] args) {

        try
       {
         ReceiveMail recmail=new ReceiveMail();
         System.out.println("您好,正在准备接收邮件...");
         Message[] msg = recmail.getMail("202.38.212.1", "yhliu", "yhliu");
         System.out.println("您好,共收到"+msg.length+"封邮件");
         for (int i = 0; i < msg.length; i++)
         {
           if (msg[i].isMimeType("text/*"))
           { //判断邮件类型为普通文本邮件
             System.out.println("这是一封普通邮件");
             recmail.handleText(msg[i]);
           }
           else
           { //判断邮件类型为非文本邮件
             //
             // make sure this was a multipart/signed message - there should be
             // two parts as we have one part for the content that was signed and
             // one part for the actual signature.
             //
             if (msg[i].isMimeType("multipart/signed")) //签名邮件
             {
                 System.out.println("这是一封签名邮件");

               recmail.handle(msg[i]);
               SMIMESigned s = new SMIMESigned((MimeMultipart) msg[i].getContent());

               //
               // extract the content
               //
               MimeBodyPart content = s.getContent();
               Object cont = content.getContent();

               if (cont instanceof String)
               {
                 System.out.println("邮件内容:");
                 System.out.println( (String) cont);
               }
               else if (cont instanceof Multipart)
               {
                  Multipart mp = (Multipart) cont;
                  System.out.println( recmail.handleMultipart(mp));
               }

               System.out.println( recmail.verify(s));


             }
             else if (msg[i].isMimeType("application/pkcs7-mime")) //加密邮件
             {

               ReadEncryptedMail rem=new ReadEncryptedMail();
               MimeBodyPart res=null;
               res=rem.ReadEncryptedMailAutoByLocalKey((MimeMessage) msg[i],"tanglab".toCharArray());


          if (res.isMimeType("multipart/signed"))  //邮件解密后res为签名邮件
              {
                  SMIMESigned s = new SMIMESigned((MimeMultipart) res.getContent());

             //
             // extract the content
             //
             MimeBodyPart content = s.getContent();
             System.out.println("这是一封加密并签名邮件");
             recmail.handle(msg[i]);
             Object cont = content.getContent();

             if (cont instanceof String)
             {
               System.out.println("邮件解密后内容:");
               System.out.println( (String) cont);
             }
             else if (cont instanceof Multipart)
             {
               Multipart mp = (Multipart) cont;
               System.out.println( recmail.handleMultipart(mp));

             }

             System.out.println( recmail.verify(s));

              }
         else  //邮件解密后的res为非签名邮件
          {
            System.out.println("这是一封加密邮件");
            recmail.handle(msg[i]);
            if (res.isMimeType("text/*"))  //邮件解密后的res为文本邮件
            {
               System.out.println("邮件解密后内容:");
               System.out.println(res.getContent());
            }
             else
             {
                 System.out.println("邮件解密后内容:");
                System.out.println(recmail.handleMultipart((Multipart)res.getContent()));

             }

          }

       }
   else //Not a signed or an encrypted message!
   {
       System.out.println("这是一封多邮件体的复合邮件");
      recmail.handle(msg[i]);
      System.out.println( recmail.handleMultipart(msg[i]));
   }

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


   recmail.close();


    }

catch(Exception e2)
    {
   System.out.println(e2);
    }

    }
}

⌨️ 快捷键说明

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