发送邮件

/**
* @Comments:发送邮件
* @param: map(type用什么邮箱发的,mailUser用户名,passWord密码,ToMail收件人,CCMail抄送,title标题,contents内容)
* @return: boolean
*/
public static boolean toMail(Map<String, String> mapSent){
  String host="";
  boolean boo = false;
  try {
    //默认邮箱类型,发件人,密码/授权码(qq)
    mapSent.put("type",mapSent.get("type")!=null?mapSent.get("type"):"qq");
    final String mailUser = mapSent.get("mailUser")!=null?mapSent.get("mailUser"):"xx@qq.com";
    final String passWord = mapSent.get("passWord")!=null?mapSent.get("passWord"):"xx";

    Properties props = new Properties();//配置发送邮件的环境属性
    if(mapSent.get("type") == "qq" || mapSent.get("type").equals("qq")){//用qq邮箱发送邮件
      host = "smtp.qq.com";
      props.put("mail.smtp.port","465");
      props.put("mail.smtp.starttls.enable","true" );
      props.put("mail.smtp.socketFactory.port","465");
      props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
      props.put("mail.smtp.socketFactory.fallback","false");
      props.setProperty("mail.imap.socketFactory.class","javax.net.ssl.SSLSocketFactory");
      props.setProperty("mail.imap.socketFactory.fallback","false");
      props.setProperty("mail.imap.port","993");
      props.setProperty("mail.imap.socketFactory.port","993");
    }else if(mapSent.get("type") == "163" || mapSent.get("type").equals("163")){
      host = "smtp.163.com";
      props.put("mail.smtp.port", "25");
    }else if(mapSent.get("type") == "139" || mapSent.get("type").equals("139")){
      host = "smtp.139.com";
    }
    props.put("mail.smtp.host",host);
      props.put("mail.smtp.auth", "true");

    Authenticator auth = new Authenticator(){
      @Override
       protected PasswordAuthentication getPasswordAuthentication(){//用户名、密码
          return new PasswordAuthentication(mailUser, passWord);
      }
    };
    Session session = Session.getInstance(props, auth);//使用环境属性和授权信息,创建邮件会话
        session.setDebug(true);
    MimeMessage message = new MimeMessage(session);//创建邮件消息
    Address addressFrom = new InternetAddress(mailUser);

    message.setFrom(addressFrom);//设置发件人
    if(null != mapSent.get("ToMail") && "" != mapSent.get("ToMail"))
      message.addRecipient(Message.RecipientType.TO,new InternetAddress(mapSent.get("ToMail")));//设置收件人
    else
      throw new Exception("ToMail is not null");
    if(null != mapSent.get("CCMail") && "" != mapSent.get("CCMail"))//有则抄送
      message.setRecipient(RecipientType.CC,new InternetAddress(mapSent.get("CCMail")));//设置抄送
    message.setSubject(mapSent.get("title")); //邮件标题
    message.setText(mapSent.get("contents")); //内容
    message.saveChanges();

    //Transport transport = session.getTransport("smtp");
    //transport.connect(host,mailUser,passWord);
    //transport.send(message);//发送邮件
    //transport.close();
    Transport.send(message);//发送邮件
    boo = true;
  } catch (Exception e) {
    toThExCla(e, "Constant");//自定义抛出异常格式(忽略)
  }
  return boo;
}

posted @ 2016-12-28 11:37  dyf423  阅读(656)  评论(1)    收藏  举报