Springboot集成邮件发送,465端口协议及附件名乱码问题

一、引入maven依赖包

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

二、配置邮件信息

mail:
  host: smtp.xxx.com
  username: xxx.com
  port: 465
  password: xxx
  default-encoding: UTF-8
  properties:
    mail:
      smtp:
        socketFactoryClass: javax.net.ssl.SSLSocketFactory
  protocol: smtps

如果这里指定465端口,该端口和项目服务端口不冲突。邮件发送协议必须是smtps 不指定发送邮件时会报错,所以必须指定protocol配置为smtps

三、代码


	@Autowired
    JavaMailSender javaMailSender; 
	private void sendMail() {
	MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
		//附件发送
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true, "utf-8");//true表示支持附件并解码中文
            mimeMessageHelper.setFrom(eMailConfiguration.sendUser, "发送者");
            String[] sary = {"xxx.com", "xxx@qq.com"};//接收者集合
            mimeMessageHelper.setTo(sary);//接受者
            mimeMessageHelper.setSubject("主题");
            mimeMessageHelper.setCc(sary);//抄送
            mimeMessageHelper.setText("正文", true);//指定true表示解码中文
            mimeMessageHelper.addAttachment(MimeUtility.encodeWord("文件名称", "utf-8", "B"), new File("文件地址"));//解码文件名称中文乱码情况
            javaMailSender.send(mimeMessage);\\发送文件
        } catch (MessagingException e) {
            throw new RuntimeException(e);
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
	}

四、使用时遇到的问题

465端口发送异常,配置stmps协议。
附件发送时文件名称乱码问题,指定中文解码方式 MimeUtility.encodeWord("文件名称", "utf-8", "B")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

焱墩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值