亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? filemessagereader.java

?? PIMailReader 基于RCP eclipse的郵件接收小程序
?? JAVA
字號:
package net.sf.pim.mail.reader;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;

import javax.mail.Header;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Part;

import net.sf.pim.mail.MailUtil;

import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.swt.SWT;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.layout.RowData;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.program.Program;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Menu;
/**
 * @author levin
 * 郵件中contenttype的格式關系
+------------------------- multipart/mixed ----------------------------+
|                                                                      |
|  +----------------- multipart/related ------------------+            |
|  |                                                      |            |
|  |  +----- multipart/alternative ------+  +----------+  |  +------+  |
|  |  |                                  |  | 內嵌資源   |  |  | 附件 |  |
|  |  |  +------------+  +------------+  |  +----------+  |  +------+  |
|  |  |  | 純文本正文 |  | 超文本正文 |  |                    |            |
|  |  |  +------------+  +------------+  |  +----------+  |  +------+  |
|  |  |                                  |  | 內嵌資源   |  |  | 附件 |  |
|  |  +----------------------------------+  +----------+  |  +------+  |
|  |                                                      |            |
|  +------------------------------------------------------+            |
|                                                                      |
+----------------------------------------------------------------------+
 */
public class FileMessageReader extends Composite {

	private Label from;
	private Label to;
	private Label cc;
	private Label subject;
	private Label sent;
	private Composite attachments;
	private Composite main;
	private Browser body;
	Message messageShow;
	
	public FileMessageReader(Composite parent, int style) {
		super(parent, style);
		setLayout(new FillLayout());
		create();
	}
	public void create() {
		main = new Composite(this, SWT.NONE);
		GridLayout layout = new GridLayout();
		layout.numColumns = 2;
		main.setLayout(layout);
		GridDataFactory.fillDefaults().grab(true, true).applyTo(main);
		// 頭區
		Font boldFont = JFaceResources.getFontRegistry().getBold(JFaceResources.DEFAULT_FONT);
		Label l = new Label(main, SWT.WRAP);
		l.setText("發件人:");
		l.setFont(boldFont);
		l.addMouseListener(new MouseAdapter(){
			public void mouseDoubleClick(MouseEvent e) {
				if(messageShow != null){
					try {
						StringBuffer sb=new StringBuffer();
						Enumeration em = messageShow.getAllHeaders();
						while (em.hasMoreElements()){
							Header header=(Header) em.nextElement();
							sb.append(header.getName()).append(":").append(header.getValue()).append("\n");
						}
						MessageDialog.openInformation(FileMessageReader.this.getShell(), "郵件頭信息", sb.toString());
					} catch (MessagingException e1) {
						e1.printStackTrace();
					}
				}
			}
		});
		from = new Label(main, SWT.NONE);
		from.setText("<from>");

		l = new Label(main, SWT.WRAP);
		l.setText("收件人:");
		l.setFont(boldFont);
		to = new Label(main, SWT.WRAP);
		to.setText("<to>");

		l = new Label(main, SWT.WRAP);
		l.setText("抄送:");
		l.setFont(boldFont);
		cc = new Label(main, SWT.WRAP);
		cc.setText("<cc>");
		
		l = new Label(main, SWT.WRAP);
		l.setText("接收時間:");
		l.setFont(boldFont);
		sent = new Label(main, SWT.WRAP);
		sent.setText("<send date>");

		l = new Label(main, SWT.WRAP);
		l.setText("主題:");
		l.setFont(boldFont);
		subject = new Label(main, SWT.WRAP);
		subject.setText("<subject>");

		l = new Label(main, SWT.WRAP);
		GridDataFactory.fillDefaults().align(SWT.BEGINNING, SWT.TOP).applyTo(l);
		l.setText("附件:");
		l.setFont(boldFont);
		attachments=new Composite(main,SWT.NULL);
		//設置layoutdata很關鍵,讓它在vertical上自動
		GridDataFactory.fillDefaults().grab(true, false).applyTo(attachments);
		RowLayout rowLayout = new RowLayout();
		rowLayout.spacing=8;
		attachments.setLayout(rowLayout);

		body = new Browser(main, SWT.WRAP | SWT.READ_ONLY);
		//禁止鼠標右鍵的菜單,設置一個空的POP_UP菜單
		Menu menu = new Menu(body.getShell(), SWT.POP_UP);
		body.setMenu(menu);		
		GridData gridData = new GridData(GridData.FILL_BOTH);
		gridData.horizontalSpan=2;
		body.setLayoutData(gridData);
		body.setText("<無郵件>");
	}

	public void showMessage(Message msg) throws MessagingException {
		this.messageShow =msg;
		from.setText(MailUtil.getAddress(msg.getFrom()));
		MailUtil.resetSize(from);
		to.setText(MailUtil.getAddress(msg.getRecipients(Message.RecipientType.TO)));
		MailUtil.resetSize(to);
		cc.setText(MailUtil.getAddress(msg.getRecipients(Message.RecipientType.CC)));
		MailUtil.resetSize(cc);
		sent.setText(MailUtil.getSentTime(msg));
		MailUtil.resetSize(sent);
		subject.setText(msg.getSubject() == null ?"":msg.getSubject());
		MailUtil.resetSize(subject);
		try {
			//附件
			final HashMap<String,Part> atts=new HashMap<String, Part>();
			MailUtil.dumpPart(msg, atts);
			//清除以前
			for(Control c:attachments.getChildren())
				c.dispose();
			for(final String f:atts.keySet()){
				Composite composite=new Composite(attachments,SWT.FLAT);
				RowLayout rowLayout = new RowLayout();
				rowLayout.wrap=false;
				rowLayout.spacing=0;
				composite.setLayout(rowLayout);
				Image image=MailUtil.getImage(f);
				Label label=new Label(composite,SWT.NULL);
				if(image != null){
					label.setImage(image);
				}
				Link link=new Link(composite,SWT.NULL);
				link.setText("<a>"+f+"</a>");
				link.addSelectionListener(new SelectionAdapter(){
					public void widgetSelected(SelectionEvent e) {
						//點擊附件進行顯示
			            Thread th = new Thread(new AttachmentViewer(f,atts.get(f)));
			            th.start();
					}
				});
				composite.setLayoutData(new RowData(composite.computeSize(SWT.DEFAULT, SWT.DEFAULT)));
			}
			//重新設置附件區的大小
			MailUtil.resetSize(attachments);
			//正文
			Object messageBody = getMessageBody(msg);
			if(messageBody instanceof String) {
				body.setText((String) messageBody);
			}else if(messageBody instanceof URL){
				body.setUrl(((URL)messageBody).toString());
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		main.layout();
	}
	//取郵件體
	protected Object getMessageBody(Part msg) throws MessagingException, IOException {
		String body="無法識別的的郵件";
		//投機一下,直接用ie的mht規范顯示郵件,先不考慮附件的優化
		if(msg.getHeader("FILE_FULL_NAME") != null){
			return new File(msg.getHeader("FILE_FULL_NAME")[0]).toURL();
		}
		return body;
	}
	
	//顯示附件
    class AttachmentViewer implements Runnable {
		String cmd;

		Part p;

		public AttachmentViewer(String file, Part part) {
			cmd = file;
			p = part;
		}

		public void run() {
			try {
				// Simply ask windows to open the file in a command shell.
				// Windows will then open the file in whatever way it
				// usually does or ask the user how to open it.
				String str = System.getProperty("java.io.tmpdir") + cmd;
				MailUtil.copyIntput2Output(p.getInputStream(), new FileOutputStream(str));
				Program.launch(str);
//				String theCmd = "cmd /c \"start \"\" \"" + str + "\"\"";
//				Runtime.getRuntime().exec(theCmd);
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
	}

	public Message getMessageShow() {
		return messageShow;
	}
	public void setMessageShow(Message messageShow) {
		this.messageShow = messageShow;
	}    
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲永久精品国产| 国产精品网站导航| 在线观看一区二区视频| a4yy欧美一区二区三区| jlzzjlzz亚洲日本少妇| 91一区二区在线观看| 91亚洲精品乱码久久久久久蜜桃| 国产91综合一区在线观看| 国产精品一卡二卡| 播五月开心婷婷综合| 99免费精品视频| 欧美在线看片a免费观看| 欧美美女一区二区| 久久综合色天天久久综合图片| 欧美α欧美αv大片| 国产亚洲一区二区三区| 中文字幕永久在线不卡| 一区二区三区在线高清| 日韩影视精彩在线| 国产精品亚洲第一区在线暖暖韩国| 成人午夜电影小说| 精品国产精品一区二区夜夜嗨| 日本亚洲天堂网| 91成人免费在线| 国产一区二区三区最好精华液| 免费高清在线视频一区·| 日本在线播放一区二区三区| 亚瑟在线精品视频| 国产在线精品不卡| 色婷婷综合久久久久中文一区二区 | 精品国产免费一区二区三区香蕉 | 久久精品国产一区二区| 国内精品久久久久影院薰衣草| 国产69精品久久99不卡| 欧美视频在线一区二区三区| 精品国产伦理网| 亚洲国产一二三| 国产盗摄一区二区| 欧美三级中文字幕| 精品国产一区二区三区久久久蜜月| 中文字幕一区免费在线观看| 日本视频免费一区| 一本一道久久a久久精品| 日韩欧美一级片| 依依成人精品视频| eeuss鲁片一区二区三区在线看| 欧美丰满少妇xxxxx高潮对白| 日本一区二区三区高清不卡| 日日骚欧美日韩| 播五月开心婷婷综合| 日韩视频在线永久播放| 一区二区三区欧美在线观看| 国产乱码精品一区二区三区av| 91国产丝袜在线播放| 亚洲国产高清不卡| 国产一区二区三区四区五区美女| 51精品视频一区二区三区| 国产精品久久三区| 国产aⅴ精品一区二区三区色成熟| 9191久久久久久久久久久| 亚洲午夜精品在线| 在线欧美一区二区| 亚洲欧美日本韩国| av成人老司机| 国产精品久久久久一区| 国产电影精品久久禁18| 国产亚洲午夜高清国产拍精品| 九色|91porny| 欧美成人精精品一区二区频| 久久精品国产亚洲a| 日韩午夜在线观看| 蜜乳av一区二区| 欧美日韩国产另类不卡| 性做久久久久久免费观看 | 美女看a上一区| 日韩一区二区在线播放| 男女激情视频一区| 久久天堂av综合合色蜜桃网| 激情五月婷婷综合| 国产午夜精品久久| av电影在线不卡| 一区二区在线观看免费视频播放| 色拍拍在线精品视频8848| 亚洲一线二线三线久久久| 欧美日韩国产综合一区二区 | 欧美精品一区二区三区久久久| 美腿丝袜亚洲一区| 久久亚洲精品小早川怜子| 粉嫩av亚洲一区二区图片| 日韩毛片视频在线看| 欧美午夜精品一区| 麻豆极品一区二区三区| 国产欧美一区二区三区网站| 99久免费精品视频在线观看| 一区二区三区欧美日韩| 欧美一区二区网站| 国产精品一区二区免费不卡| 亚洲欧洲在线观看av| 欧美四级电影网| 韩国一区二区视频| 一区二区三区中文在线| 欧美一级高清片| 成人激情小说乱人伦| 亚洲成人手机在线| 国产情人综合久久777777| 在线观看成人小视频| 久久国产精品99久久人人澡| 国产精品欧美经典| 7777精品伊人久久久大香线蕉| 国产一区二区三区四区五区入口 | 狠狠v欧美v日韩v亚洲ⅴ| 日本一区二区成人| 欧美日韩dvd在线观看| 国产精品亚洲综合一区在线观看| 夜夜精品视频一区二区| 精品国产伦一区二区三区免费 | 精品一区二区三区日韩| |精品福利一区二区三区| 日韩欧美一级二级| 欧美视频完全免费看| 懂色av一区二区三区蜜臀| 蜜桃精品视频在线观看| 一区二区三区 在线观看视频| 精品国产91亚洲一区二区三区婷婷| 色诱亚洲精品久久久久久| 国产老妇另类xxxxx| 五月天网站亚洲| 亚洲色图色小说| 国产精品沙发午睡系列990531| 日韩三级在线免费观看| 在线看不卡av| 色综合天天综合| 成人永久免费视频| 狠狠色狠狠色综合系列| 天天做天天摸天天爽国产一区| 亚洲四区在线观看| 久久久无码精品亚洲日韩按摩| 欧美精品在线一区二区| 色噜噜狠狠成人中文综合| 成人综合婷婷国产精品久久免费| 精品一区二区三区在线观看 | 日韩在线一区二区| 亚洲精品videosex极品| 亚洲免费在线视频| ...av二区三区久久精品| 国产精品毛片a∨一区二区三区| 久久婷婷色综合| 久久久亚洲高清| 国产欧美日本一区二区三区| 精品区一区二区| 久久久蜜桃精品| 国产欧美精品区一区二区三区| 久久久久97国产精华液好用吗| 久久久国产综合精品女国产盗摄| 久久嫩草精品久久久精品一| 久久久久成人黄色影片| 国产精品人成在线观看免费| 国产精品免费视频网站| 成人免费一区二区三区在线观看| 亚洲欧美一区二区三区极速播放| 亚洲欧美日韩国产综合在线 | 精品日本一线二线三线不卡| 精品国产乱子伦一区| 国产午夜精品一区二区三区四区| 国产欧美一区视频| 亚洲精品中文字幕乱码三区| 亚洲欧美色图小说| 日韩精品一卡二卡三卡四卡无卡| 日本成人在线电影网| 国产成人在线免费观看| 色综合久久久久网| 欧美日韩高清在线| 国产午夜精品在线观看| 亚洲日穴在线视频| 午夜欧美电影在线观看| 国产原创一区二区三区| 福利电影一区二区三区| 欧美视频一区二| 久久免费视频一区| 一区二区三区四区国产精品| 天天操天天干天天综合网| 国产99久久久国产精品潘金| 91久久精品国产91性色tv | 成人永久免费视频| 欧美视频自拍偷拍| 久久先锋影音av鲁色资源| 自拍偷拍欧美精品| 精品一区二区三区视频| 91免费版在线| 欧美变态口味重另类| 亚洲激情一二三区| 国产高清一区日本| 777奇米四色成人影色区| 国产精品成人一区二区三区夜夜夜| 亚洲一区二区不卡免费| 9色porny自拍视频一区二区| 欧美va日韩va| 亚洲图片欧美色图| 91丨porny丨中文| 久久久久久久综合|