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

📄 reademail.java

📁 DbService数据库接口,测试规范?菘饨涌?测试规范数据库接口,测试规范
💻 JAVA
字号:
package com.rainbow.mas.plugin.dbplugin.test;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Blob;
import java.util.Calendar;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.MimeType;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.sql.rowset.serial.SerialBlob;

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.rainbow.mas.SessionFactory;
import com.rainbow.mas.plugin.dbplugin.util.MIMEUtil;
import com.rainbow.mas.web.dto.MmsOutbox;
import com.rainbow.mas.web.dto.MmsSubmit;

public class ReadEmail {

	   public static MimeMessage composeMessage(File emlFile) throws Exception{
	        Properties props = System.getProperties();
	        props.put("mail.host", "smtp.dummydomain.com");
	        props.put("mail.transport.protocol", "smtp");

	        
	        javax.mail.Session mailSession = javax.mail.Session.getDefaultInstance(props, null);
	        InputStream source = new FileInputStream(emlFile);

	        MimeMessage message = new MimeMessage(mailSession, source);
	        return message;
	    }
	   
	   public static void save(MimeMessage message){
			Session s = SessionFactory.currentSession();
			Transaction tx = s.beginTransaction();
			try {
				tx = s.beginTransaction();
				MmsOutbox out = new MmsOutbox();
				out.setApplicationid("applicationid1");
				out.setDestaddr("13074872705");
				out.setExtcode("ext1");
				out.setRequesttime(Calendar.getInstance().getTime());
				out.setSimmsid("aaaaaa");
				out.setReqdeliveryreport(0);
				out.setSubject("subject");
				
				ByteArrayOutputStream outStream = new ByteArrayOutputStream();
				message.writeTo(outStream);
				Blob b = new SerialBlob(outStream.toByteArray());
				outStream.close();
				
				out.setMessagecontent(b);
				s.save(out);
				tx.commit();
			} catch (Exception e) {
				if (tx != null) {
					e.printStackTrace();
					tx.rollback();
				}
			} finally {
				s.close();
			}		   
	   }
	   public static void display(){
		   Session s = SessionFactory.currentSession();
		   Transaction tx = s.beginTransaction();
		   try {
			   tx = s.beginTransaction();
			   List list = s.createQuery("from MmsOutbox").list();
			   for (int i=0;i<list.size();i++){
				   MmsOutbox out = (MmsOutbox) list.get(i);
				   Blob b = out.getMessagecontent();
				   MimeMessage msg = MIMEUtil.compose(b.getBinaryStream());
			   
				   showContent(msg);
			   }

			   tx.commit();
		   } catch (Exception e) {
			   if (tx != null) {
				   e.printStackTrace();
				   tx.rollback();
			   }
		   } finally {
			   s.close();
		   }		   
	   }
	   public static void testComposeDummy(){
		   Session s = SessionFactory.currentSession();
		   Transaction tx = s.beginTransaction();
		   try {
			   tx = s.beginTransaction();
			   List list = s.createQuery("from MmsSubmit").list();
			   for (int i=0;i<list.size();i++){
				   MmsSubmit out = (MmsSubmit) list.get(i);
				   MimeMessage msg = MIMEUtil.composeDummy(out.getContents());
				   msg.writeTo(System.out);
			   }
			   
			   tx.commit();
		   } catch (Exception e) {
			   if (tx != null) {
				   e.printStackTrace();
				   tx.rollback();
			   }
		   } finally {
			   s.close();
		   }		   
	   }

	   public static void showContent(Part part ) throws Exception{
		   
		   String ctype = part.getContentType();
		   System.out.println("ctype:"+ctype);

		   Object o =null;
		   if (part instanceof Message){
			   o = part.getContent();
			   if (o instanceof Multipart){
				   Multipart mp = (Multipart)o;
				   int count = mp.getCount();
				   for (int i=0;i<count;i++){
					   showContent(mp.getBodyPart(i));
				   }
			   }else if ( o instanceof MimeBodyPart){
				   part = (Part)o;
			   }
		   }
		   if (part instanceof MimeBodyPart){
			   MimeBodyPart mbp = (MimeBodyPart) part;
			   String cid= mbp.getContentID();
			   String filename = mbp.getFileName();
			   MimeType type = new MimeType(ctype);
			   
			   DataHandler handler = mbp.getDataHandler();
			   handler.writeTo(System.out);
			   
//			   InputStream in =mbp.getInputStream();
//			   DataInputStream  di = new DataInputStream(in);
//			   int sz = di.available();
////			   byte[] buf = new byte[sz];
//			   while (true){
//				   try{
//					   byte b = di.readByte();
//					   System.out.print((char)b);
//				   }catch (EOFException e){
//					   break;
//				   }
//			   }
//			   BufferedReader r = new BufferedReader(new InputStreamReader(in));
//			   String l = r.readLine();
//			   while (l!=null){
//				   System.out.println(l);
//				   l = r.readLine();
//			   }
			   
			   System.out.println("\nPrimaryType:"+type.getPrimaryType()+" SubType:"+type.getSubType());
			   System.out.println("\ncid:"+cid+"\nfilename:"+filename);
		   }
	   }
	   public static void main(String args[]) throws Exception{
//		   MimeMessage msg = composeMessage(new File("d:\\message.eml"));
//		   showContent(msg);
//		   msg.writeTo(System.out);
//		   save(msg);
//		   display();
		   testComposeDummy();
	   }	   
}

⌨️ 快捷键说明

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