专业的JAVA编程教程与资源

网站首页 > java教程 正文

葵花宝典之Java邮件(java葵花宝典网站)

temp10 2024-10-08 18:10:56 java教程 11 ℃ 0 评论

注意:亲测有效,无效请留言或者私信。感谢转发+关注+点赞

1、pom.xml需要添加一个依赖

葵花宝典之Java邮件(java葵花宝典网站)

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

2、application.properties需要添加以下的配置,密码要注意

server.port=8080
spring.mail.host=smtp.qq.com
spring.mail.username=自己的qq邮箱
spring.mail.password=密码,不是登陆密码,是开启smtp的授权码
spring.mail.default-encoding=UTF-8
spring.mail.port=465   
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

3、发送邮件的工具类SendMailUtil.java

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Component
public class SendMailUtil {
    @Autowired
    JavaMailSender mailSender;

    /**
     * 发送文本消息
     * @param senderMail    发送者邮箱
     * @param receiveMail   接受者邮箱
     * @param subject   主题
     * @param text  主体内容
     * @return
     */
    public  String  sendMail(String senderMail,String receiveMail,String subject,String text){
        try {
            final MimeMessage message = this.mailSender.createMimeMessage();
            final MimeMessageHelper helper = new MimeMessageHelper(message);
            helper.setFrom(senderMail);//发送者邮箱
            helper.setTo(receiveMail);//接收者邮箱
            helper.setSubject(subject);
            helper.setText(text);
            this.mailSender.send(message);
            return "sucesss";
        } catch (Exception ex) {
            ex.printStackTrace();
            return "error";
        }
    }


    /**
     * 带附件发送邮件----可多个附件 图片,doc都可以发送
     * @param senderMail  发送者邮箱
     * @param receiveMail 接受者邮箱
     * @param subject   主题
     * @param text      主体内容
     * @param fileArray    附件路径
     * @return
     */
    public  String  sendMailFile(String senderMail,String receiveMail,String subject,String text,String[] fileArray) {
        try {
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message, true);
            helper.setFrom(senderMail);
            helper.setTo(receiveMail);
            helper.setSubject(subject);
            helper.setText(text);
            //验证文件数据是否为空
            if (null != fileArray) {
                FileSystemResource file = null;
                for (int i = 0; i < fileArray.length; i++) {
                    //添加附件
                    file = new FileSystemResource(fileArray[i]);
                    helper.addAttachment(fileArray[i].substring(fileArray[i].lastIndexOf(File.separator)), file);
                }
            }
            mailSender.send(message);
            System.out.println("带附件的邮件发送成功");
            return "sucesss";
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("发送带附件的邮件失败");
            return "error";
        }
    }
}

注意:setFrom:指的是发送者的邮箱,要和配置文件的一致。

4、control层实现mailController.java

import com.rocketmq.demo.Utils.SendMailUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/mail")
public class mailController {
    @Autowired
    SendMailUtil sendMailUtil;

    /**
     * 发送文本消息,不带附件
     * @return
     */
    @ResponseBody
    @RequestMapping("/send")
    public Object sendEmail() {
        String senderMial = "发送者@qq.com";
        String receiveMail = "接收者@qq.com";
        String subject = "测试主题";
        String text = "测试内容";
        return sendMailUtil.sendMail(senderMial,receiveMail,subject,text);
    }

    @GetMapping("/sendFile")
    public String sendAttachmentsMail() {
        String senderMial = "发送者@qq.com";
        String receiveMail = "接收者@qq.com";
        String subject = "测试主题";
        String text = "测试内容";
        String[] path={"C:\\Users\\yangwj\\Desktop\\公司\\正式员工详细信息表.xls"};
        return  sendMailUtil.sendMailFile(senderMial,receiveMail,subject,text,path);

    }
}

注意:亲测有效,无效请留言或者私信。感谢转发+关注+点赞

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表