SpringBoot简单/带附件邮件发送

话不多说,直接上代码吧。

1.引入依赖

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-mail -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>

2.全局环境配置

#邮件发送配置
spring.mail.host=smtp.qq.com
spring.mail.username=xxx@qq.com  //发送方的邮箱
spring.mail.password=密码  // 对于qq邮箱,密码指的是授权码
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

spring.mail.sender=xxx@qq.com

开始编码:

3. EmailService

public interface EmailService {
    /**
     * 简单邮件
     * @param sendto
     * @param title
     * @param content
     */
    void Sender(String sendto, String title, String content);

    /**
     * 带附件邮件发送
     * @param sendto
     * @param title
     * @param content
     * @param file 文件
     */
    void sendAttachementFileMail(String sendto, String title, String content, File file);
}

4.ImpEmailService service接口实现

     * @创建人:
     * @创建时间: 2019/4/18
     * @描述: 带附件邮件发送
     */
 
@Service
public class ImpEmailService implements EmailService {
   @Value("${spring.mail.sender}")
    private String sender;

    @Autowired
    private JavaMailSender mailSender;

  /**
     * @创建人:
     * @创建时间: 2019/4/18
     * @描述: 带附件邮件发送
     */
    @Override
    public void Sender(String sendto, String title, String content) {

        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        //发件人
        simpleMailMessage.setFrom(sender);
        //发送给谁
        simpleMailMessage.setTo(sendto);
        //邮件主题
        simpleMailMessage.setSubject(title);
        //邮件内容
        simpleMailMessage.setText(content);

        mailSender.send(simpleMailMessage);

    }


    @Override
    public void sendAttachementFileMail(String sendto, String title, String content, File file) {
        MimeMessage mimeMessage = mailSender.createMimeMessage();

        try {
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            //发件人
            messageHelper.setFrom(sender);
            messageHelper.setTo(sendto);
            messageHelper.setSubject(title);
            messageHelper.setText(content);

            System.out.println("发件人:" + sender + "\n" +
                    "收件人:" + sendto + "\n" +
                    "标题:" + title + "\n" +
                    "内容:" + content);

            //附件
            FileSystemResource fileSystemResource = new FileSystemResource(file);

            String fileName = file.getName();
            System.out.println(fileName);
            messageHelper.addAttachment(fileName, fileSystemResource);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
 		mailSender.send(mimeMessage);
    }

5. Controller

public class EmailController {
    @Autowired
    EmailService emailService;

    @Autowired
    private JavaMailSender mailSender;


    @PutMapping("/sendEmail")
    public String sendMail(){
        emailService.Sender("xxx@qq.com", "Spring Boot邮件功能测试", "怎么更换密保手机?+" \n"  +1、QQ能登录,密保手机、QQ安全中心手机版中的任何一种可用时,您可以登录QQ安全中心官网->密保手机->更换、通过统一安全验证->更换密保手机审核时间过后,即可更换;+" \n" +
                "                \"2、若您密保手机不在使用,请您进入QQ安全中心官网并登录您的QQ帐号->密保手机->点击“更换”->我已换号->输入新手机号码->更换其他验证方式,通过资料验证即可更换。+" \n" +
                "                \"注:若验证不通过,请继续邀请好友辅助,我们会根据反馈结果重新审核,结果将在4个小时内下发至填写的联系方式,请您留意。");

        return "发送成功";

    }


    @PutMapping("/sendFileEmail")
    public String sendFileMail(){
        File file=new File("E:/log/spring.log");
        emailService.sendAttachementFileMail("xxx@qq.com",
                "Spring Boot带附件邮件功能测试", "请注意查收附件!", file);

        return "带附件邮件发送成功!";
    }
}

在PostMan 中测试,
带附件邮件测试
http://localhost:8080/sendFileEmail
在这里插入图片描述

简单邮件测试
http://localhost:8080/sendEmail
在这里插入图片描述
是正常的, 可以正常发出邮件。

要在 Spring Boot 中实现发送附件邮件,可以按照以下步骤进行设计: 1. 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 2. 在 application.properties 文件中配置邮件服务器的信息: ```properties # 邮件服务器地址 spring.mail.host=smtp.qq.com # 邮件服务器端口 spring.mail.port=465 # 邮箱账号 spring.mail.username=your_email@qq.com # 邮箱密码 spring.mail.password=your_password # SSL协议 spring.mail.properties.mail.smtp.ssl.enable=true ``` 3. 创建一个邮件服务类 MailService,实现发送邮件的功能: ```java @Service public class MailService { @Autowired private JavaMailSender mailSender; public void sendMailWithAttachment(String to, String subject, String text, File file) throws MessagingException { MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setTo(to); helper.setSubject(subject); helper.setText(text); // 添加附件 FileSystemResource resource = new FileSystemResource(file); helper.addAttachment(file.getName(), resource); mailSender.send(message); } } ``` 4. 在需要发送邮件的地方调用 MailService 的 sendMailWithAttachment 方法,传入收件人地址、邮件主题、邮件正文和附件文件即可: ```java // 发送附件邮件 File file = new File("attachment.txt"); mailService.sendMailWithAttachment("recipient@example.com", "邮件主题", "邮件正文", file); ``` 以上就是在 Spring Boot 中实现发送附件邮件的设计过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值