您的位置:首页 > 编程语言 > Java开发

Spring中使用 JavaMailSenderImpl来实现邮件的发送

2018-03-12 23:06 1026 查看
前言:本项目使用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); 

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐