mailsender发送邮件到QQ邮箱,手机QQ查看邮件不显示图片,网页和邮箱软件查看却正常

只是用手机QQ查看邮件时显示不出来邮件的图片,但是官方他们发的邮件就可以显示图片出来。并且我发的邮件用电脑网页QQ邮箱手机QQ邮箱软件可以显示出图片,唯独用手机QQ查看邮件时显示不出来图片

  1. 手机QQ查看邮件显示不出图片,ios端显示为空白,安卓端显示图片撕裂

img

  1. 用网页邮箱查看邮件却可以显示图片

img

  1. 用手机QQ邮箱软件查看邮件图片也可以正常显示

img

application.yml

  mail:
    host: smtp.qq.com
    username: 280299652@qq.com 
    password: xxxxxxxxxxxxxxxx 
    port: 465
    nickname: 邮件提醒
    from: 280299652@qq.com
    default-encoding: UTF-8

    properties:
      mail:
        smtp:
          socketFactoryClass: javax.net.ssl.SSLSocketFactory
          ssl:
            enable: true

Controller

                Mail mail = new Mail();
                mail.setFrom(nickname + '<' + "280299652@qq.com" + '>');
                mail.setTo(MailAddress);
                mail.setSubject("邮件测试");
                mail.setText("<html><body>测试<br><img src='cid:pig'></body></html>");

                //附件
                if (fujian != null && fujian.length > 0) {
                    for (MultipartFile file : fujian)
                        //System.out.println(file.getOriginalFilename());
                    mail.setMultipartFiles(fujian);
                }

                mailService.sendMail(mail);

Service

private Mail sendMimeMail(Mail mail) {
        try {
            MimeMessageHelper messageHelper = new MimeMessageHelper(mailSender.createMimeMessage(), true);//true表示支持复杂类型
            //Mail.setFrom(getMailSendFrom());//邮件发信人从配置项读取
            messageHelper.setFrom(mail.getFrom());//邮件发信人
            messageHelper.setTo(mail.getTo().split(","));//邮件收信人
            messageHelper.setSubject(mail.getSubject());//邮件主题
            messageHelper.setText(mail.getText(),true);//邮件内容
            if (!StringUtils.isEmpty(mail.getCc())) {//抄送
                messageHelper.setCc(mail.getCc().split(","));
            }
            if (!StringUtils.isEmpty(mail.getBcc())) {//密送
                messageHelper.setCc(mail.getBcc().split(","));
            }
            if (mail.getMultipartFiles() != null) {//添加邮件附件
                for (MultipartFile multipartFile : mail.getMultipartFiles()) {
                    messageHelper.addAttachment(multipartFile.getOriginalFilename(), multipartFile);
                }
            }
            if (mail.getSentDate()==null) {//发送时间
                mail.setSentDate(new Date());
                messageHelper.setSentDate(mail.getSentDate());
            }

            //邮件中加载图片
            Resource res = new ClassPathResource("static/image/pig.jpg");
            messageHelper.addInline("pig",res);

            mailSender.send(messageHelper.getMimeMessage());//正式发送邮件
            mail.setStatus("ok");
            return mail;
        } catch (Exception e) {
            throw new RuntimeException(e);//发送失败
        }
    }

其他发现

用网页QQ邮箱发一个图片邮件,用手机QQ查看邮件依然不显示图片,也就等于用官方的邮箱给自己发一个图片邮件都不能显示,但是其他官方发给我的邮件图片又能正常显示,不知道他们用的什么方法发的邮件,如果是mailsender本身就是有这个问题,实现不了我也没话说啦

  1. 用网页QQ邮箱发邮件,用手机qq查看邮件

img

img

  1. 看别人发的邮件用手机QQ查看邮件显示又没问题

img

虽然我这个是本地图片,按道理也一起打包过去了的,服务器端的图片我也试过了,显示不出来,应该是某些细节或者技术我还不懂