📄 testreadencryptedandsignedmail.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 + -