翻了很多资料,研究了一段时间,终于实现了功能

首先,我们发邮件需要有邮件的信息,写一个类来封装邮件的内容和主题:

/**
 * 主要用来封装所要发送的邮件信息
 * @author Administrator
 *
 */
public class SimpleMail {
    //邮件中的主题
    private String subject;
    //邮件的内容(正文)
    private String content;
    //可根据需要增加其他邮件元素
    public void setSubject(String subject) {
    this.subject = subject;
    }
    public void setContent(String content) {
    this.content = content;
    }
    public String getSubject() {
    return subject;
    }
    public String getContent() {
    return content;
    }
}

有了邮件的信息,我们就要有邮箱的登陆账号密码,然后进行验证:

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
/** 
* 服务器邮箱登录验证
*/
public class MailAuthenticator extends Authenticator {
    // 用户名(登录邮箱)
    private String username;
    // 密码
    private String password;
    /**
    * 初始化邮箱和密码
    * @param username 邮箱
    * @param password 密码
    */
    public MailAuthenticator(String username, String password){
    this.username = username;
    this.password = password;
    }
    String getPassword() {
    return password;
    }
    protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(username, password);
    }
    String getUsername() {
    return username;
    }
    public void setPassword(String password) {
    this.password = password;
    }
    public void setUsername(String username) {
    this.username = username;
    }
}

之后我们需要判断属于那种邮箱,是126的、还是163的、或者其他的

public class Const {
    public final static String FROMEMAIL = "organisms_master@126.com";
    public final static String FROMEMAIL_PASSWORD = "master";
    public static String WEB_SITE="localhost:8080";
    public static String PROJECT="organisms-master";
    public static String returnEmailWeb(String email) {
        String str = null;
        if (email.indexOf("@qq.com") != -1) {
            // qq邮箱
            return "https://mail.qq.com/";
        }
        if (email.indexOf("@126.com") != -1) {
            // 126
            return "http://www.126.com";
        }
        if (email.indexOf("@hotmail.com") != -1) {
            // hotmail
            return "http://www.hotmail.com";
        }
        if (email.indexOf("@163.com") != -1 || email.indexOf("@yeah.net") != -1) {
            // 163 yeah
            return "http://email.163.com/";
        }
        if (email.indexOf("@yahoo.com.cn") != -1
                || email.indexOf("@yahoo.cn") != -1) {
            // yahoo
            return "http://mail.cn.yahoo.com/";
        }
        if (email.indexOf("@sina.com") != -1
                || email.indexOf("@vip.sina.com") != -1) {
            // sina
            return "http://mail.sina.com.cn/";
        }
        if (email.indexOf("@gmail.com") != -1) {
            // gmail
            return "http://mail.google.com";
        }
        if (email.indexOf("@139.com") != -1) {
            return "http://mail.10086.cn/";
        }
        if (email.indexOf("@sohu.com") != -1) {
            return "http://mail.sohu.com/";
        }
        return str;
    }
    public static void main(String[] args) {
        System.out.println(returnEmailWeb("664659008@qq.com"));
        System.out.println(returnEmailWeb("angel__6386@126.com"));
        System.out.println(returnEmailWeb("mrzhangl@hotmail.com"));
        System.out.println(returnEmailWeb("name@163.com"));
    }
}

最后要发送邮件我们需要,邮件发送器,里面的注释非常清楚:

/**
 * 此类实现邮件的单发、群发等等,是邮件发送的核心类
 * @author Administrator
 *
 */
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
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;
/**
 * 简单邮件发送器,可单发,群发。
 */
public class SimpleMailSender {
    // 发送邮件的props文件
    private final transient Properties props = System.getProperties();
    // 邮件服务器登录验证
    private transient MailAuthenticator authenticator;
    // 邮箱session
    private transient Session session;
    /**
     * 初始化邮件发送器
     *
     * @param smtpHostName
     *            SMTP邮件服务器地址
     * @param username
     *            发送邮件的用户名(地址)
     * @param password
     *            发送邮件的密码
     */
    public SimpleMailSender(final String smtpHostName, final String username,
            final String password) {
        init(username, password, smtpHostName);
    }
    /**
     * 初始化邮件发送器
     *
     * @param username
     *            发送邮件的用户名(地址),并以此解析SMTP服务器地址
     * @param password
     *            发送邮件的密码
     */
    public SimpleMailSender(final String username, final String password) {
        // 通过邮箱地址解析出smtp服务器,对大多数邮箱都管用
        final String smtpHostName = "smtp." + username.split("@")[1];
        init(username, password, smtpHostName);
    }
    /**
     * 初始化
     *
     * @param username
     *            发送邮件的用户名(地址)
     * @param password
     *            密码
     * @param smtpHostName
     *            SMTP主机地址
     */
    private void init(String username, String password, String smtpHostName) {
        // 初始化props
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", smtpHostName);
        // 验证
        authenticator = new MailAuthenticator(username, password);
        // 创建session
        session = Session.getInstance(props, authenticator);
    }
    /**
     * 发送邮件
     * @param recipient收件人邮箱地址
     * @param subject邮件主题
     * @param content邮件内容
     * @throws AddressException
     * @throws MessagingException
     */
    public void send(String recipient, String subject, String content)
            throws AddressException, MessagingException {
        // 创建mime类型邮件
        final MimeMessage message = new MimeMessage(session);
        // 设置发信人
        message.setFrom(new InternetAddress(authenticator.getUsername()));
        // 设置收件人
        message.setRecipient(RecipientType.TO, new InternetAddress(recipient));
        // 设置主题
        message.setSubject(subject);
        // 设置邮件内容
        Multipart mp = new MimeMultipart("related");
        MimeBodyPart mbp = new MimeBodyPart();
        mbp.setContent(content.toString(), "text/html;charset=utf-8");
        mp.addBodyPart(mbp);
        message.setContent(mp);
        // 设置邮件内容
        // message.setContent(content.toString(), "text/html;charset=utf-8");
        // 发送
        Transport.send(message);
    }
    /**
     * 群发邮件
     *
     * @param recipients收件人们
     * @param subject
     *            主题
     * @param content
     *            内容
     * @throws AddressException
     * @throws MessagingException
     */
    public void send(List<String> recipients, String subject, String content)
            throws AddressException, MessagingException {
        // 创建mime类型邮件
        final MimeMessage message = new MimeMessage(session);
        // 设置发信人
        message.setFrom(new InternetAddress(authenticator.getUsername()));
        // 设置收件人们
        final int num = recipients.size();
        InternetAddress[] addresses = new InternetAddress[num];
        for (int i = 0; i < num; i++) {
            addresses[i] = new InternetAddress(recipients.get(i));
        }
        message.setRecipients(RecipientType.TO, addresses);
        // 设置主题
        message.setSubject(subject);
        // 设置邮件内容
        message.setContent(content.toString(), "text/html;charset=utf-8");
        // 发送
        Transport.send(message);
    }
    /**
     * 发送邮件
     *
     * @param recipient收件人邮箱地址
     * @param mail邮件对象
     * @throws AddressException
     * @throws MessagingException
     *
     */
    public void send(String recipient, SimpleMail mail)
            throws AddressException, MessagingException {
        send(recipient, mail.getSubject(), mail.getContent());
    }
    /**
     * 发送带附件的邮件
     *
     * @param recipient
     * @param mail
     * @param file
     *            附件完整路径
     */
    public void send(String recipient, SimpleMail mail,String fileAttachment,String filename) throws Exception{
        // 创建mime类型邮件
        final MimeMessage message = new MimeMessage(session);
        // 设置发信人
        message.setFrom(new InternetAddress(authenticator.getUsername()));
        // 设置收件人
        message.setRecipient(RecipientType.TO, new InternetAddress(recipient));
        // 设置主题
        message.setSubject(mail.getSubject());
        // 设置邮件内容
        Multipart mp = new MimeMultipart();
        MimeBodyPart mbp = new MimeBodyPart();
        DataSource source =new FileDataSource(fileAttachment);
        mbp.setDataHandler(new DataHandler(source));
        mbp.setFileName(filename);
        mp.addBodyPart(mbp);
                                                     
        // 设置邮件内容
        message.setContent(mp);
        // 发送
        Transport.send(message);
    }
    /**
     * 群发邮件
     *
     * @param recipients
     *            收件人们
     * @param mail
     *            邮件对 象
     * @throws AddressException
     * @throws MessagingException
     */
    public void send(List<String> recipients, SimpleMail mail)
            throws AddressException, MessagingException {
        send(recipients, mail.getSubject(), mail.getContent());
    }
    public static void main(String[] args) throws Exception {
        /* 单发 */
        SimpleMail sm = new SimpleMail();
        sm.setSubject("最近提示");
        sm.setContent("我是<a href=\"http://www.baidu.com\">百度</a>");
        SimpleMailSender sms = new SimpleMailSender(Const.FROMEMAIL,
                Const.FROMEMAIL_PASSWORD);
        /* sms.send(list, subject, content)可以变成群发 */
        sms.send("664659008@qq.com", sm);
    }
}

下面写一个jsp测试一下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>用户注册</title>
     <script type="text/javascript" src="<%=path%>/js/jquery-1.7.1.min.js"></script>
     <script type="text/javascript" src="<%=path%>/js/jquery1.9.validate.js" ></script>
     <script type="text/javascript" src="<%=path%>/bootstrap/js/bootstrap.min.js"></script>
     <link rel="stylesheet" media="screen"
            href="<%=path%>/bootstrap/css/bootstrap.min.css">
        <link rel="stylesheet" href="<%=path%>/bootstrap/css/bootstrap-responsive.min.css">
    <style type="text/css">
      body {
        padding-top: 40px;
        padding-bottom: 40px;
        background-color: #f5f5f5;
      }
               
      .form-signin {
        max-width: 430px;
        padding: 19px 29px 29px;
        margin: 0 auto 20px;
        background-color: #fff;
        border: 1px solid #e5e5e5;
        -webkit-border-radius: 5px;
           -moz-border-radius: 5px;
                border-radius: 5px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.05);
           -moz-box-shadow: 0 1px 2px rgba(0,0,0,.05);
                box-shadow: 0 1px 2px rgba(0,0,0,.05);
      }
      .form-signin .form-signin-heading,
      .form-signin .checkbox {
        margin-bottom: 10px;
      }
      .form-signin input[type="text"],
      .form-signin input[type="password"] {
        font-size: 16px;
        height: auto;
        margin-bottom: 15px;
        padding: 7px 9px;
      }
               
      .input-block-level-width {
        display: block;
        width: 60%;
        min-height: 30px;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
      }
       .error-input-box{
     border: 1px solid #F00;
    }
    .errors {
     color:red;
     font-family: Tahoma, Verdana;
     font-size:9pt;
    }
    </style>
    </head>
    <body>
         <div >
            <form id="registerForm" action="<%=path%>/account/accountAction!doRegister.action"  method="post" >
                账号:<input type="text" name="user.username" /><span></span>
                <br />   
                密码:<input type="password" name="user.password" /><span></span>
                <br />
                邮箱:<input type="text" name="user.email" /><span></span>
                <br />
                <input type="submit" value="注册"/>
            </form>
            </div>
        <!-- /container -->
  </body>
</html>
<script type="text/javascript">
  $(document).ready(function(){
     $("#registerForm").validate({
          event: "submit",
          rules: {
          "user.username" : {
             //非空判断
             required: true,
             minlength:4,
             maxlength:10
          },
          "user.password" : {
           required: true
          },
          "user.email" : {
           required: true,
           //邮箱格式
           email:true
          }          
   },
   messages: {
         "user.username" : {
             required: "请输入用户名",
             minlength:"长度不能小于{0}",
             maxlength:"长度不能长于{0}"
          },
          "user.password" : {
           required: "请输入密码"
          },
          "user.email" : {
           required: "请输入邮箱",
           email:"邮箱格式不正确"
          }                
   },
   errorPlacement: function(error, element) {
      element.next().html("<font color='red'>"+error.html()+"</font>");
       element.keyup(function(){
          element.next().html("");
        });
   },   
   showErrors: function(errorMap, errorList) {
      this.defaultShowErrors();  
   },onfocusout : false
  });
  });
</script>

BootStrap这一个很有用,可以到网上看看,找它的中文网站,包含了很多前端的技术,希望对你们有用。

希望对你们有帮助!!!