java实现发送邮件

来源:互联网 发布:神创天下骑兵升级数据 编辑:程序博客网 时间:2024/05/17 01:02


                                        Java实现发送邮件的工具类



一、首先导入 


二、实现代码如下:


import java.util.Iterator;import java.util.Map;import java.util.Properties;import javax.mail.BodyPart;import javax.mail.Message;import javax.mail.Multipart;import javax.mail.Session;import javax.mail.Transport;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import org.nutz.lang.Strings;import org.nutz.service.Service;import com.wonders.tiles.dic.DicDataUtils;/** * 发送邮件工具类 * @author ywx * */public class MailUtils extends Service{/** * 服务器配置 */private static final String HOST="pop3.wondersgroup.com";/** * 863团队 */public static final String GROUP_863 = "66";/** * 北京团队 */public static final String GROUP_BEIJING = "70";/** * 管理员 */public static final String GROUP_MANAGER = "杨";/** * 发送指定项目组所有人员邮件 . * @param fromName 发送人邮件地址,如yangwenxue@wondersgroup.com * @param groupName 接受一下三种常量:MailUtils.GROUP_863;MailUtils.GROUP_BEIJING;MailUtils.GROUP_FANGDI * @param subject 标题 * @param ext 邮件内容,支持html格式 */public static void sendAllMail(String from,String groupName,String subject,String ext){Map<String, String> dictionaryMap = DicDataUtils.getInstance().getDic(Integer.valueOf(groupName));for (Iterator<String> iter = dictionaryMap.keySet().iterator(); iter.hasNext();) {  String key = (String)iter.next();  String toName = dictionaryMap.get(key);  if(!Strings.isBlank(toName)){sendMail(from, toName, subject, ext);  }}}/** * 发送指定项目组所有人员邮件,发件人直接通过人员名称发送 . * @param fromName 发送人名称 * @param groupName 接受一下三种常量:MailUtils.GROUP_863;MailUtils.GROUP_BEIJING;MailUtils.GROUP_FANGDI * @param subject 标题 * @param ext 邮件内容,支持html格式 */public static void sendAllMailbyName(String fromName,String groupName,String subject,String ext){Map<String, String> dictionaryMap = DicDataUtils.getInstance().getDic(Integer.valueOf(groupName));for (Iterator<String> iter = dictionaryMap.keySet().iterator(); iter.hasNext();) {  String key = (String)iter.next();  String toName = dictionaryMap.get(key);  if(!Strings.isBlank(toName)){sendMail(DicDataUtils.getInstance().getDicData(new Integer(68), fromName), toName, subject, ext);  }}}/** * 单个发送邮件,直接通过人员名称发送 . * @param fromName 发送人名称 * @param toName 接受人名称 * @param subject 标题 * @param ext 邮件内容,支持html格式 */public static void sendMailbyName(String fromName,String toName,String subject,String ext){sendMail(DicDataUtils.getInstance().getDicData(new Integer(68), fromName), DicDataUtils.getInstance().getDicData(new Integer(68), toName), subject, ext);}/** * 单个发送邮件,直接通过邮件地址发送 . * @param from 发送人邮件地址,如yangwenxue@wondersgroup.com * @param to 接收人的邮件地址,如yangwenxue@wondersgroup.com * @param subject 标题 * @param ext 邮件内容,支持html格式 */public static void sendMail(String from,String to,String subject,String ext){  Properties props = new Properties();  // 设置发送邮件的邮件服务器的属性  //props.put("mail.smtp.host", getProperty("smtp").toString());  props.put("mail.smtp.host", HOST);  // 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)  props.put("mail.smtp.auth", "false");  // 用刚刚设置好的props对象构建一个session  Session session = Session.getDefaultInstance(props);  // 有了这句便可以在发送邮件的过程中在console处显示过程信息,供调试使  // 用(你可以在控制台(console)上看到发送邮件的过程)  session.setDebug(true);  // 用session为参数定义消息对象  MimeMessage message = new MimeMessage(session);  try {    // 加载发件人地址   message.setFrom(new InternetAddress(from));   // 加载收件人地址   message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));   // 加载标题   message.setSubject(subject);   // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件   Multipart multipart = new MimeMultipart();   // 设置邮件的文本内容   BodyPart contentPart = new MimeBodyPart();   //设置HTML内容 >>>>>>>>>>发送html的邮件   contentPart.setContent(subject,"text/html; charset=utf-8");     contentPart.setContent(ext,"text/html; charset=utf-8");     multipart.addBodyPart(contentPart);   // 将multipart对象放到message中   message.setContent(multipart);   // 保存邮件   message.saveChanges();    // 发送邮件   Transport transport = session.getTransport("smtp");   // 连接服务器的邮箱//   transport.connect(getProperty("smtp").toString(), "", "");   transport.connect(HOST, "", "");   // 把邮件发送出去   transport.sendMessage(message, message.getAllRecipients());   transport.close();  } catch (Exception e) {     e.printStackTrace();  }} public static void main(String args[]){String ext= "<div style='text-align: center;font-size: 24px;font-weight: bold'>邮件群发测试第二次,不要回</div><div right_style01'><dl><dt><h3>会议要素</h3><ul ><li><b>时间:2015-08-25 12</b></li><li><b>地点:863的302会议室</b></li><li><b>人员:dream</b></li></ul></dt></dl></div><div right_style01'><dl><dt><h3>会议议题</h3><ul >时间:下午1:301.每个人进行上周工作的实施情况(成果+问题),限5分钟2.新毕业生的学习总结(开发心得+建议+问题),限10分钟。</ul></dt></dl></div><div right_style01'><dl><dt><h3>会议纪要</h3></dt></dl></div></div><div >TEAMPLAY 版权所有  Copyright 2015 All Rights Reserved </div></body>";//MailUtils.sendMailbyName("张三", "李四", "测试发送", ext);MailUtils.sendAllMailbyName("李四", MailUtils.GROUP_863, "邮件群发测试第二次", ext);}}

本篇文章过于简洁,但只是作为个人工作的一个记录,请谅解。





1 0
原创粉丝点击