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