java发送电子邮件,报错ClassNotFoundException: javax.mail.MessagingException

在本地idea上运行的很正常,但是打成jar包发送到云服务器上运行就报错,运行不起来

1.springboot集成email

pom依赖

<!--邮箱-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

设置邮箱

yml配置

spring:
  mail:
    host:  smtp.163.com  #服务主机地址
    port: 465 #服务端口
    username: xxx@163.com #邮箱
    password: xxxxxxxxxxxxxx #授权码
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
        debug: true

​ 选用qq邮箱或者网易163开启服务STMP

2.service实现类

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Service
public class MailService {
    @Resource
    JavaMailSender javaMailSender;
    /**
     * 最简单的邮件发送
     * @param from  发送方
     * @param to    接收方
//     * @param cc    第三方(非必填)
     * @param subject   标题
     * @param content   内容
     */
    public void sendSimpleMail(String from,String to,String subject,String content){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
//        simpleMailMessage.setCc(cc);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        javaMailSender.send(simpleMailMessage);
    }
    /**
     * 代附件的邮件
     * @param from
     * @param to
     * @param subject
     * @param content
     * @param file
     */
    public void sendAttachFileMail(String from, String to, String subject, String content, File file) {
        try{
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setSubject(subject);
            mimeMessageHelper.setText(content);
            mimeMessageHelper.addAttachment(file.getName(),file);
            javaMailSender.send(mimeMessage);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

3.调用实现

@Autowired
MailService mailService;
@Test
public void sendAttachFileMail(){
    try {
        mailService.sendSimpleMail("发送方邮箱","接收方邮箱","标题","hello world!");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

你打包之后在本地先运行一下试试