当前位置:   article > 正文

java实现qq邮箱发送附件和图片_java 邮箱发送多个图片

java 邮箱发送多个图片

生成授权码

1.进入设置账户里面,把第一个服务开启
在这里插入图片描述
2.点生成授权码,在代码中当成是密码
在这里插入图片描述
3.集成到springboot里面,引入依赖包

      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-mail</artifactId>
       </dependency>
  • 1
  • 2
  • 3
  • 4

4.测试邮箱代码

public static void main(String[] args) {
        try {
            Properties prop=new Properties();
            //设置qq邮箱服务器、"mail.host", "smtp.qq.com")
            prop.setProperty("mail.host","stmp.qq.com");
            //邮箱发送协议"mail.transport.protocol", "smtp"
            prop.setProperty("mail.transport.protocol","stmp");
            //需要验证用户账号和密码"mail.smtp.auth", "true"
            prop.setProperty("mail.smpt.protocol","stmp");
            //设置SSL加密prop.put("mail.smtp.ssl.enable", "true");
            //        prop.put("mail.smtp.ssl.socketFactory", sf);
            MailSSLSocketFactory ssl=new MailSSLSocketFactory();
            ssl.setTrustAllHosts(true);
            prop.put("mail.stmp.protocol","true");
            prop.put("mail.stmp.protocol",ssl);


            //使用javaMail发送邮件的5个步骤
            //1.创建整个应用程序所需要的环境信息的session信息
            Session session=Session.getDefaultInstance(prop, new Authenticator() {
                public PasswordAuthentication getPasswordAuthentication() {
                   //发邮件的账号和授权码
                   return new PasswordAuthentication("","");
                };

            });
            //开启session的debug模式,这样就可以查看程序发送email的运行状态
            session.getDebug();
            //2.通过session得到transport
            Transport transport = session.getTransport();
            //3.使用邮箱的用户名和授权码链接邮箱服务器
              //第一个参数:qq邮箱服务器
              //第二个参数:发件人账号
              //第三个参数:授权码
            transport.connect("","","");
            //4.创建邮件
            //创建邮件对象
            MimeMessage message =new MimeMessage(session);
            //指明邮件的发件人
            message.setFrom(new InternetAddress(""));
            //指明邮件的收件人
            message.setRecipient(Message.RecipientType.TO,new InternetAddress(""));
            //邮件的标题
            message.setSubject("");
            //邮件的文本内容
            message.setContent("","text/html;charset=UTF-8");

            //5.发送邮
            transport.sendMessage(message,message.getAllRecipients());

            transport.close();

        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("有异常,发送失败");
        }
            System.out.println("发送成功");
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

5.把上面的代码改一下就可以发送图片

//        //创建邮件对象
//        MimeMessage message = new MimeMessage(session);
//
//        //指明邮件的发件人
//        message.setFrom(new InternetAddress(""));
//
//        //指明邮件的收件人,现在发件人和收件人是一样的,那就是自己给自己发
//        message.setRecipient(Message.RecipientType.TO, new InternetAddress(""));
//
//        //邮件的标题
//        message.setSubject("你是一个好人");
//
//        //邮件的文本内容
//            // 准备图片数据
//            MimeBodyPart image = new MimeBodyPart();
//            DataHandler dh = new DataHandler(new FileDataSource("src/resources/bz.jpg"));
//            image.setDataHandler(dh);
//            image.setContentID("bz.jpg");
//
//            // 准备正文数据
//            MimeBodyPart text = new MimeBodyPart();
//            text.setContent("这是一封邮件正文带图片<img src='cid:bz.jpg'>的邮件", "text/html;charset=UTF-8");
//
//            // 描述数据关系
//            MimeMultipart mm = new MimeMultipart();
//            mm.addBodyPart(text);
//            mm.addBodyPart(image);
//            mm.setSubType("related");
//
//            //设置到消息中,保存修改
//            message.setContent(mm);
//            message.saveChanges();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

发送附件和图片代码

public static void main(String[] args) throws MessagingException, GeneralSecurityException {

        //创建一个配置文件保存并读取信息
        Properties properties = new Properties();

        //设置qq邮件服务器
        properties.setProperty("mail.host","smtp.qq.com");
        //设置发送的协议
        properties.setProperty("mail.transport.protocol","smtp");
        //设置用户是否需要验证
        properties.setProperty("mail.smtp.auth", "true");


        //=================================只有QQ存在的一个特性,需要建立一个安全的链接
        // 关于QQ邮箱,还要设置SSL加密,加上以下代码即可
        MailSSLSocketFactory sf = new MailSSLSocketFactory();
        sf.setTrustAllHosts(true);
        properties.put("mail.smtp.ssl.enable", "true");
        properties.put("mail.smtp.ssl.socketFactory", sf);

        //=================================准备工作完毕

        //1.创建一个session会话对象;
        Session session = Session.getDefaultInstance(properties, new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("", "授权码");
            }
        });

        //可以通过session开启Dubug模式,查看所有的过程
        session.setDebug(true);


        //2.获取连接对象,通过session对象获得Transport,需要捕获或者抛出异常;
        Transport tp = session.getTransport();

        //3.连接服务器,需要抛出异常;
        tp.connect("smtp.qq.com","","授权码");

        //4.连接上之后我们需要发送邮件;
        MimeMessage mimeMessage = imageMail(session);

        //5.发送邮件
        tp.sendMessage(mimeMessage,mimeMessage.getAllRecipients());

        //6.关闭连接
        tp.close();

    }


    public static MimeMessage imageMail(Session session) throws MessagingException {

        //消息的固定信息
        MimeMessage mimeMessage = new MimeMessage(session);

        //邮件发送人
        mimeMessage.setFrom(new InternetAddress(""));
        //邮件接收人,可以同时发送给很多人,我们这里只发给自己;
        mimeMessage.setRecipient(Message.RecipientType.TO, new InternetAddress(""));
        mimeMessage.setSubject("我也不知道是个什么东西就发给你了"); //邮件主题


        /*
        编写邮件内容
        1.图片
        2.附件
        3.文本
         */

        //图片
        MimeBodyPart body1 = new MimeBodyPart();
        body1.setDataHandler(new DataHandler(new FileDataSource("src/resources/yhbxb.png")));
        body1.setContentID("yhbxb.png"); //图片设置ID

        //文本
        MimeBodyPart body2 = new MimeBodyPart();
        body2.setContent("请注意,我不是广告<img src='cid:yhbxb.png'>","text/html;charset=utf-8");

        //附件
        MimeBodyPart body3 = new MimeBodyPart();
        body3.setDataHandler(new DataHandler(new FileDataSource("src/resources/log4j.properties")));
        body3.setFileName("log4j.properties"); //附件设置名字

        MimeBodyPart body4 = new MimeBodyPart();
        body4.setDataHandler(new DataHandler(new FileDataSource("src/resources/1.txt")));
        body4.setFileName(""); //附件设置名字

        //拼装邮件正文内容
        MimeMultipart multipart1 = new MimeMultipart();
        multipart1.addBodyPart(body1);
        multipart1.addBodyPart(body2);
        multipart1.setSubType("related"); //1.文本和图片内嵌成功!

        //new MimeBodyPart().setContent(multipart1); //将拼装好的正文内容设置为主体
        MimeBodyPart contentText =  new MimeBodyPart();
        contentText.setContent(multipart1);

        //拼接附件
        MimeMultipart allFile =new MimeMultipart();
        allFile.addBodyPart(body3); //附件
        allFile.addBodyPart(body4); //附件
        allFile.addBodyPart(contentText);//正文
        allFile.setSubType("mixed"); //正文和附件都存在邮件中,所有类型设置为mixed;


        //放到Message消息中
        mimeMessage.setContent(allFile);
        mimeMessage.saveChanges();//保存修改


        return mimeMessage;

    }

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/591805
推荐阅读
相关标签
  

闽ICP备14008679号