d
mail.properties
#邮件服务器是否需要验证用户存在与否 ,使用“true”、“false”、“0”、“1” mail.smtp.auth=true #邮件服务器使用的协议 mail.transport.protocol=smtp #邮件服务器地址 mail.smtp.host=smtp.126.com #邮件服务器使用的端口 mail.smtp.port=25 #默认服务器端用户名 mail.host.user=***** #默认服务器用户密码 mail.host.user.password=**** #默认主机地址 mail.host.user.from=****@126.com
MailUtil.java
import java.io.File; import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; import java.util.Properties; import java.util.ResourceBundle; import javax.activation.DataHandler; import javax.activation.DataSource; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.math.NumberUtils; /** * 邮件发送工具 * * @author linzq * */ public class MailUtil { public static boolean sendMail(String to, String subject, String content) throws AddressException, MessagingException { Map<String, String> fileMap = new HashMap<String, String>(); ResourceBundle rb = ResourceBundle.getBundle("email", Locale.getDefault()); Boolean isAutheticate = BooleanUtils.toBooleanObject(rb .getString("mail.smtp.auth")); String protocol = rb.getString("mail.transport.protocol"); String host = rb.getString("mail.smtp.host"); Integer port = NumberUtils.toInt(rb.getString("mail.smtp.port"), 25); String user = rb.getString("mail.host.user"); String password = rb.getString("mail.host.user.password"); String from = rb.getString("mail.host.user.from"); return sendMail(isAutheticate, protocol, host, port, user, password, from, to, subject, content, fileMap); } /** * @param isAutheticate * 邮件务器是否验证用户 * @param protocol * 协认 * @param host * 邮件务器地址 * @param port * 端口 * @param user * 用户 * @param password * 密码 * @param from * 邮件发送地址 * @param to * 邮件接收地址 * @param subject * 标题 * @param content * 内容 * @param filePathMap * 附件,它是一个“文件名=全路径地址”的映射 * @return * @throws AddressException * @throws MessagingException */ public static boolean sendMail(Boolean isAutheticate, String protocol, String host, Integer port, String user, String password, String from, String to, String subject, String content, Map<String, String> filePathMap) throws AddressException, MessagingException { boolean bool = false; Properties p = new Properties(); p.put("mail.smtp.auth", isAutheticate.toString()); p.put("mail.transport.protocol", protocol); p.put("mail.smtp.host", host); p.put("mail.smtp.port", port); // 建立会话 Session session = Session.getInstance(p); // 建立消息 Message msg = new MimeMessage(session); // 设置发件人 msg.setFrom(new InternetAddress(from)); // 收件人 msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 发送日期 msg.setSentDate(new Date()); // 主题 msg.setSubject(subject); // 设置邮件内容,作为Multipart对象的一部分 MimeBodyPart mbp = new MimeBodyPart(); mbp.setText(content); Multipart mulp = new MimeMultipart(); mulp.addBodyPart(mbp); // 文件件名 String fileName = null; // 全路径 String fileFullPath = null; DataSource source = null; if (filePathMap != null && filePathMap.size() > 0) { Iterator it = filePathMap.entrySet().iterator(); while (it.hasNext()) { // 为每个附件做为Multipart对象的一部分 mbp = new MimeBodyPart(); Map.Entry<String, String> entry = (Map.Entry) it.next(); fileName = entry.getKey(); fileFullPath = entry.getValue(); if (fileName == null || fileName.equals("") || fileFullPath == null || fileFullPath.equals("")) { continue; } File f = new File(fileFullPath); if (!f.exists()) { continue; } source = new FileDataSource(fileFullPath); mbp.setDataHandler(new DataHandler(source)); mbp.setFileName(fileName); mulp.addBodyPart(mbp); } } // 设置信息内容,将Multipart 对象加入信息中 msg.setContent(mulp); // 登陆邮件服务器进行用户验证 Transport tran = session.getTransport(protocol); tran.connect(host, user, password); // 发送 tran.sendMessage(msg, msg.getAllRecipients()); bool = true; return bool; } /** * @param args * @throws MessagingException * @throws AddressException */ public static void main(String[] args) throws AddressException, MessagingException { // 调试使用 Map map = new HashMap<String, String>(); map.put("jasper-el.jar", "D:\\apache-tomcat-6.0.29\\lib\\jasper-el.jar"); map.put("RUNNING.txt", "D:\\apache-tomcat-6.0.29\\RUNNING.txt"); //sendMail(true, "smtp", "smtp.126.com", 25, "con", "***", // "[email protected]", "[email protected]", "答话稀有", "快点下在", map); sendMail("[email protected]", "答话稀有", "快点下在"); } }
dd