【Java】javax.mail发送邮件

本文介绍了如何在Java中使用javax.mail库发送包含HTML内容和多个附件的邮件,同时还详细阐述了邮件的抄送与密送概念。用户能够了解如何设置发送者别名,并理解在邮件传递过程中不同接收者的可见信息差异。
摘要由CSDN通过智能技术生成

maven依赖

        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>

 

1、controller

import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import javax.mail.internet.MimeMessage;
import javax.validation.Valid;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/api/v*/personal/mail")
public class MailController extends BaseController {

    @Autowired
    private MailService mailService;

    @Value("${pm.mail.attachment.temp}")
    private String prefix;

    /**
     * 发送邮件
     */
    @PostMapping("/send")
    public Result send(@Valid MailProtocol.Send.Input input, List<MultipartFile> file, BindingResult bindingResult) {

        validateArgs(bindingResult);

        List<String> filesPath = getFilesPath(file);

        mailService.sendMail(StringUtil.join(input.getTo(), ","), StringUtil.join(input.getCc(), ","),
                StringUtil.join(input.getBcc(), ","), input.getSubject(), input.getContent(), filesPath);

        return succeed();
    }

    /**
     * 暂存文件
     *
     * @param attachments 附件
     * @return 附件路径
     */
    private List<String> getFilesPath(List<MultipartFile> attachments) {

        if (isEmpty(attachments)) {
            return new Arra
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值