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