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

📄 emailutil.java

📁 OBPM是一个开源
💻 JAVA
字号:
package cn.myapps.util.mail;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.tags.Span;
import org.htmlparser.tags.TableTag;
import org.htmlparser.util.NodeList;

import cn.myapps.base.action.ParamsTable;
import cn.myapps.base.dao.PersistenceUtils;
import cn.myapps.core.dynaform.document.ejb.Document;
import cn.myapps.core.page.ejb.Page;
import cn.myapps.core.page.ejb.PageProcess;
import cn.myapps.core.style.repository.ejb.StyleRepositoryVO;
import cn.myapps.core.user.action.WebUser;
import cn.myapps.core.user.ejb.UserProcess;
import cn.myapps.core.user.ejb.UserVO;
import cn.myapps.util.ProcessFactory;

public class EmailUtil {

	private static boolean _DEBUG = true;

	private EmailSender _sender;

	private String applicationid;

	public EmailUtil(String applicationid) {
		setApplicationid(applicationid);
	}

	public void setEmail(String from, String to, String subject, String body,
			String host, String user, String password, String bbc,
			boolean validate) {

		_sender = new EmailSender(from, to, subject, body, host, user,
				password, bbc, validate);
	}

	/**
	 * Send the e-mail.
	 * 
	 * @param email
	 *            The emal object.
	 * @throws Exception
	 */
	public void send() throws Exception {
		_sender.sendEmail2();
	}

	public void sendMailToAllUser(String from, String subject, String host,
			String account, String password, String bbc, boolean validate)
			throws Exception {

		try {
			// PersistenceUtils.getSessionSignal().sessionSignal++;

			UserProcess up = (UserProcess) ProcessFactory
					.createProcess(UserProcess.class);
			Collection colls = up.doSimpleQuery(null, applicationid);
			String body = "";
			for (Iterator iter = colls.iterator(); iter.hasNext();) {
				UserVO user = (UserVO) iter.next();
				String to = user.getEmail();
				// String to = "jarod@teemlink.com";
				boolean flag = false;
				if (to != null && to.trim().length() > 0) {
					Pattern p = Pattern.compile("(.*)@(.*)\\.(.*)"); // 检验Email地址
					Matcher m = p.matcher(to);
					flag = m.matches();
				}
				if (flag && user.getStatus() == 1) {
					body = getSendPageTxt(new WebUser(user));
					if (!isEmptyPage(body)) {
						EmailSender _sender = new EmailSender(from, to, subject
								+ "[" + user.getName() + "]", body, host,
								account, password, bbc, validate);
						_sender.sendEmail2();
					}
				}
			}
			// map.put("zhen_001@163.com", txt);
		} finally {
			// PersistenceUtils.getSessionSignal().sessionSignal--;
			PersistenceUtils.closeSession();
		}
	}

	private String getSendPageTxt(WebUser webUser) throws Exception {
		StringBuffer html = new StringBuffer();

		PageProcess pp = (PageProcess) ProcessFactory
				.createProcess(PageProcess.class);
		Page mailPage = pp.doViewByName("mail", webUser.getApplicationid());
		if (mailPage != null) {
			ParamsTable params = new ParamsTable();
			StyleRepositoryVO style = mailPage.style;
			html.append("<HTML>");
			if (style != null) {
				String content = style.getContent();
				if (content != null && content.trim().length() > 0) {
					html.append("<HEAD>");
					html.append("<STYLE>");
					html.append(content);
					html.append("</STYLE>");
					html.append("</HEAD>");
				}
			}

			html.append("<BODY>");
			html.append(mailPage.toHtml(new Document(), params, webUser,
					new ArrayList()));
			html.append("</BODY>");
			html.append("</HTML>");
		}

		return html.toString();
	}

	private boolean isEmptyPage(String page) throws Exception {
		Parser parser = new Parser();
		parser.setInputHTML(page);
		Node[] nodes = parser.extractAllNodesThatAre(TableTag.class);
		for (int i = 0; i < nodes.length; i++) {
			if (nodes[i] instanceof Tag) {
				String pageid = ((Tag) nodes[i]).getAttribute("pageid");
				if (pageid != null && pageid.trim().length() > 0) {
					return false;
				}
			}
		}
		return true;
	}

	public String getApplicationid() {
		return applicationid;
	}

	public void setApplicationid(String applicationid) {
		this.applicationid = applicationid;
	}
}

⌨️ 快捷键说明

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