前言:本项目使用Eclipse+maven插件来构建
需要在pom.xml文件中加入对应的依赖包的配置: 

 <!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail --> 

 <dependency> 

     <groupId>com.sun.mail</groupId> 

     <artifactId>javax.mail</artifactId> 

     <version>1.6.1</version> 

 </dependency> 

  
 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support --> 

 <dependency> 

     <groupId>org.springframework</groupId> 

     <artifactId>spring-context-support</artifactId> 

     <version>4.3.14.RELEASE</version> 

 </dependency> 


一、发送邮件的步骤为 

       (1).创建邮件发送器(需要发送人的邮件账号、密码、该账户的邮件服务器地址->如网易为:smtp.163.com) 

       (2).编辑邮件的具体内容(分类如下) 

            ①.纯text文本文件 

            ②.HTML格式的文件 

            ③.带附件的邮件(图片、媒体文件、office文件) 

        (3).调用JavaMailSenderImpl类的对象里面的send(邮件内容参数)方法来发送 

            ①.邮件的内容参数支持的类型有:MimeMessages(简单内容)、SimpleMailMessages(复杂内容) 

二、代码实现 

     (1).发送邮件者的信息封装(这里只封装了必要的信息、若有其他需要则自行添加) 

    代码: 

    //发送者的信息配置类 

    public class Sender { 

 //邮箱的用户名 

 public String username="你的用户名"; 

 //邮箱的登录密码 

 public String password="你登录的密码"; 

 //邮箱提供商的服务器地址 

 public String serverHost="smtp.163.com"; 

 //端口号  默认为25 

 public int port=25; 

 //邮件使用的协议 

 public String protocol="http"; 

 //省略set/get 

        } 

     (2).创建邮件发送器 

        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();         

    
 Sender sender=new Sender();//使用默认的初始信息 

    
 mailSender.setHost(sender.getServerHost());   

    
 mailSender.setUsername(sender.getUsername());   

    
 mailSender.setPassword(sender.getPassword());  

    
 mailSender.setProtocol(sender.getProtocol()); 

     2.1).发送文本文件的内容编写 

       SimpleMailMessage smm = new SimpleMailMessage();//用户简单邮件内容的信息编写     

      // 设定邮件参数  

     smm.setFrom(sender.getUsername());//发送者的用户名 

     smm.setTo("xxxxxxx@163.com");//接收者的邮箱地址 

     smm.setSubject("邮件标题");//邮件的标题  

     smm.setText("邮件的内容信息"); //邮件的内容 

     mailSender.send(smm);//发送邮件 

     2.2)发送HTML格式以及待附件的内容编写 

     //1、创建文件发送器 

     //设置邮件发送器  包括发送人 密码   服务器地址  

    JavaMailSenderImpl mailSender = new JavaMailSenderImpl();   

    /* 省略的代码与前面一致*/ 

    //2、文件内容编写 

    //使用JavaMail的MimeMessage,支持更加复杂的邮件格式和内容   

    MimeMessage msg = mailSender.createMimeMessage();   

    //创建MimeMessageHelper对象,处理MimeMessage的辅助类   

    // msg:发送的邮件信息,true:是否为HTML格式的文件,utf-8:设置编码格式(因为发送html格式时、内容可能出现乱码) 

    MimeMessageHelper helper = new MimeMessageHelper(msg, true,"utf-8");   

    //使用辅助类MimeMessage设定参数   

    helper.setFrom(mender.getUsername());   

    helper.setTo("1127941043@qq.com");   

    helper.setSubject("测试HTML格式的邮件发送");   

    helper.setText("<body><h1>Hello HTML格式的邮件内容</h1><body>" 

 
 + "HTML格式的内容区",true);  //true参数说明该内容格式为HTML 

    //加载文件资源,作为附件   

    ClassPathResource file = new ClassPathResource("秦时明月.jpg");   

    //加入附件   

    helper.addAttachment("秦时明月.jpg", file);  //键值对 

    // 发送邮件   

   mailSender.send(msg);