(傲娇的白狐)邮件发送练习

邮件发送:

  • 前言:

  • 前端代码:

  • 后端代码:

  • 配置文件  .yml   或 .properties

  • 获取授权码

  • 所需jar包:

  • 测试结果:

前言:

  想要去学习一个新的案例,最好的方法就是复制一下,自己运行一遍。

  注:此案例仅为练习使用;

 

前端代码:

<div>
    <form action="@{/upload}"  enctype="multipart/form-data" method="post">
        附件名:<input type="text" name="filtname">
        附件:<input type="file" name="file"/>
        发件人:<input type="text" name="to">
        收件人:<input type="text" name="form">
        <input type="submit">
    </form>
</div>

注意一定要在form中加入

enctype="multipart/form-data"



后端代码:

1.文件上传 注:后端获取用
@RequestParam("file") MultipartFile file
@RequestMapping("/upload")
    public String fileUpload(

                             @RequestParam("file") MultipartFile file
                             ,String to,
                             String form
                             ,String filtname
                             ) throws IOException, MessagingException {



        System.out.println("to = " + to);
        System.out.println("form = " + form);
        System.out.println("filtname = " + filtname);
        System.out.println("file = " + file);
        //获取文件名 : file.getOriginalFilename();
        String uploadFileName = file.getOriginalFilename();

        System.out.println("uploadFileName =========》" + uploadFileName);
//    这个是自己写的方法 作用是获取前端文件名 而不是路径 可直接使用 uploadFilname 作为替换下面文件输出流那行代码的的 xiugai
String xiugai
= this.xiugai.xiugai(uploadFileName); String substring = uploadFileName.substring(uploadFileName.indexOf(".") + 1); // 文件类型 System.out.println("substring = " + substring); if (!(substring.equals("gif") || substring.equals("jpg") || substring.equals("png") || substring.equals("pptx") || substring.equals("rar") || substring.equals("mp4"))) { System.out.println("格式错误"); System.out.println("只能是gif jpg png pptx rar格式"); return "emp/cuowu"; } //如果文件名为空,直接回到首页!w if ("".equals(uploadFileName)) { return "index"; } System.out.println("上传文件名 ===============: " + uploadFileName); //上传路径保存设置 // String path = request.getServletContext().getRealPath("/upload"); String path = "D://xiazai//weizhi"; //如果路径不存在,创建一个 File realPath = new File(path); if (!realPath.exists()) { realPath.mkdir(); } System.out.println("上传文件保存地址:==============" + realPath); InputStream is = file.getInputStream(); //文件输入流 OutputStream os = new FileOutputStream(new File(realPath, xiugai)); //文件输出流 System.out.println("is = " + is); //读取写出 int len = 0; byte[] buffer = new byte[1024]; while ((len = is.read(buffer)) != -1) { os.write(buffer, 0, len); os.flush(); } os.close(); is.close();

 


2.邮件发送
 MimeMessage mimeMessage = mailSender.createMimeMessage();

        MimeMessageHelper helper=new MimeMessageHelper(mimeMessage,true);//开启可以支持 多文档
        helper.setSubject("测试邮件");   //标题
//          可以传 html 代码
        helper.setText("测试上传发送邮件",true);    //开启后可传html代码 
      例: //         helper.setText("<p style='color: red'>为什么我的mail 不能用 导不进去啊啊啊啊啊</p>",true);
// 附件 helper.addAttachment(filtname+"."+substring, new File("D:\\xiazai\\weizhi\\"+xiugai)); System.out.println("附件路径====="+"D:\\xiazai\\weizhi\\"+xiugai); System.out.println("xiugai = " + xiugai);

helper.setTo(to);//收件人 helper.setFrom(form);//发件人 mailSender.send(mimeMessage); return "index";

 


配置文件  .yml   或 .properties

#目标邮箱   目前为自己给自己发送
spring.mail.username=2621824119@qq.com
# 目标邮箱授权码 获取步骤看下方 spring.mail.password
=xxxxxxxxxxxxxxxxx
#协议 spring.mail.host
=smtp.qq.com #开启加密认证 spring.mail.properties.mail.smtp.ssl.enable=true

获取授权码

首先打开自己的qq邮箱页面   点击设置-----账户

 

 找到下方的协议 开启第一个  点击生成授权码  它会让你发送一串数字到指定号码

 

 发送完毕即可;

所需jar包:

        <!--linkmnpokltydhhi-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-support</artifactId>
            <version>2.0.8</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

        <!--servlet-api导入高版本的-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!--文件上传-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>

测试结果:

 

 

 

 

posted @ 2020-08-11 14:18  傲娇的白狐  阅读(140)  评论(0)    收藏  举报