portal web service

MailService.java 3.0KB

    package com.ekexiu.portal.mail; import java.io.UnsupportedEncodingException; import java.util.Map; import java.util.Properties; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.jfw.apt.annotation.Bean; @Bean public class MailService { private Properties sessionProperties = new Properties();; private String mailHost; private int port; private String username; private String password; private Session session; private String from; private String nick; public void setNick(String nick) { if (nick == null) return; try { this.nick = javax.mail.internet.MimeUtility.encodeText(nick); } catch (UnsupportedEncodingException e) { this.nick = null; } } public String getFrom() { return from; } public void setFrom(String from) { this.from = from; } private Session getSession() { if (null == this.session) { this.session = Session.getInstance(this.sessionProperties); } return this.session; } public int getPort() { return port; } public void setPort(int port) { this.port = port; } public Properties getSessionProperties() { return sessionProperties; } public void setSessionProperties(Map<String, String> map) { this.sessionProperties.clear(); this.sessionProperties.putAll(map); } public String getMailHost() { return mailHost; } public void setMailHost(String mailHost) { this.mailHost = mailHost; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public void sendSimpleMail(String to, String template, Map<String, String> values, String subject) throws MessagingException { Transport ts = this.getSession().getTransport(); ts.connect(this.mailHost, port, username, password); try { Message message = this.createSimpleMail(to, subject, template, values); ts.sendMessage(message, message.getAllRecipients()); } finally { try { ts.close(); } catch (Exception e) { } } } private MimeMessage createSimpleMail(String to, String subject, String template, Map<String, String> values) throws AddressException, MessagingException { MimeMessage message = new MimeMessage(session); if (null == this.nick) { message.setFrom(new InternetAddress(this.from)); } else { message.setFrom(new InternetAddress(this.nick + " <" + this.from + ">")); } message.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); message.setSubject(subject); String content = template; if (null != values && values.size() > 0) { for (Map.Entry<String, String> entry : values.entrySet()) { content = content.replaceAll(entry.getKey(), entry.getValue()); } } message.setContent(content, "text/html;charset=UTF-8"); return message; } }