中城投建设集团网站,ps怎么下载永久免费版,学校做网站需要什么,外贸零售平台springboot使用163发送html格式的邮件
效果: 下面直接开始教学 注册邮箱#xff0c;生成授权码 获取163邮箱的授权码#xff0c;可以按照以下步骤操作#xff1a;
登录163邮箱 打开浏览器#xff0c;访问 163邮箱登录页面。 使用你的邮箱账号和密码登录。进入邮箱设置 登…springboot使用163发送html格式的邮件
效果: 下面直接开始教学 注册邮箱生成授权码 获取163邮箱的授权码可以按照以下步骤操作
登录163邮箱 打开浏览器访问 163邮箱登录页面。 使用你的邮箱账号和密码登录。进入邮箱设置 登录后点击页面右上角的“设置”图标通常是一个齿轮图标。 在菜单中选择“POP3/SMTP/IMAP”选项。开启SMTP服务 在“POP3/SMTP/IMAP”设置页面中找到“SMTP服务”选项。 点击“开启”按钮启用SMTP服务。获取授权码 开启SMTP服务后系统会提示你设置授权码。 按照页面提示使用绑定的手机号发送短信验证。 验证成功后系统会生成一个授权码通常是一串字母和数字的组合。保存授权码 将生成的授权码记录下来并妥善保存。 在配置文件中将password字段的值替换为这个授权码。
然后添加到application.yml中 添加到application.yml
#邮箱基本配置mail:protocol: smtp#配置smtp服务主机地址host: smtp.163.com#发送者邮箱username: killer5482021163.com#配置密码,注意不是真正的密码而是刚刚申请到的授权码password: ZFBFPLNWJIUKJUWS#端口号465或587port: 465#默认的邮件编码为UTF-8default-encoding: UTF-8#其他参数properties:mail:smtp:auth: truessl:#本地测试先放开sslenable: truerequired: true#开启debug模式这样邮件发送过程的日志会在控制台打印出来方便排查错误debug: truepom.xml中添加用到的依赖 !-- 邮件 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-mail/artifactId/dependency!-- Java模板引擎 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencypom.xml中需要添加如下
build
resourcesresourcedirectorysrc/main/resources/directoryfilteringtrue/filteringincludesinclude**/*.properties/includeinclude**/*.xml/includeinclude**/*.html/include !-- 确保 HTML 文件被包含 --include**/*.css/include !-- 如果需要包含 CSS 文件 --include**/*.js/include !-- 如果需要包含 JS 文件 --include**/*.yml/include/includes/resourceresourcedirectorysrc/main/java/directoryincludesinclude**/*.xml/include/includes/resource/resources/buildController:
ApiOperation(value 测试邮件发送)GetMapping(/test-mail)public boolean mail(){MailRequest request new MailRequest();request.setSubject(【信飞科技】你好测试邮件。);request.setSendFrom(xxxxxxxx82021163.com);request.setSendTo(858399075qq.com);// 构建HTML内容包含超链接String link http://***.***.1.52/mrrraadmin;String htmlContent mailService.buildHtmlContent(link);request.setText(htmlContent);return mailService.sendHtmlMail(request);}MaiService:
package com.geofly.mrrra.lottery.service;import com.geofly.mrrra.lottery.entity.MailRequest;/*** Description: 邮件发送接口** Author yanghaoxing* Date 2025/3/19 16:44*/public interface MailService {/*** Description: 发送html邮件** Param: [mailRequest]* Return: boolean* Author yanghaoxing* Date 2025/3/19 18:29*/boolean sendHtmlMail(MailRequest mailRequest);/*** Description: 获取邮件模板** Param: [link]* Return: java.lang.String* Author yanghaoxing* Date 2025/3/19 18:40*/String buildHtmlContent(String link);
}
MailServiceImpl:
package com.geofly.mrrra.lottery.service.impl;import cn.hutool.core.lang.Assert;
import com.geofly.mrrra.lottery.entity.MailRequest;
import com.geofly.mrrra.lottery.service.MailService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;/*** 邮件接口实现类** Auther: yanghaoxing* Date: 2025/3/19*/
Service(mailServiceImpl)
public class MailServiceImpl implements MailService {private static final Logger log LoggerFactory.getLogger(MailServiceImpl.class);Autowiredprivate JavaMailSender javaMailSender;Autowiredprivate TemplateEngine templateEngine;public void checkMail(MailRequest mailRequest) {Assert.notNull(mailRequest,邮件请求不能为空);Assert.notNull(mailRequest.getSendTo(), 邮件收件人不能为空);Assert.notNull(mailRequest.getSubject(), 邮件主题不能为空);Assert.notNull(mailRequest.getText(), 邮件收件人不能为空);}Overridepublic boolean sendHtmlMail(MailRequest mailRequest) {checkMail(mailRequest); // 检查邮件参数是否合法MimeMessage message javaMailSender.createMimeMessage();try {MimeMessageHelper helper new MimeMessageHelper(message, true, UTF-8);helper.setTo(mailRequest.getSendTo());helper.setFrom(mailRequest.getSendFrom());helper.setSubject(mailRequest.getSubject());// 设置邮件内容为HTML格式helper.setText(mailRequest.getText(), true); // 第二个参数为true表示内容为HTMLjavaMailSender.send(message);return true;} catch (MessagingException e) {log.error(邮件发送失败, e);e.printStackTrace();}return false;}Overridepublic String buildHtmlContent(String link) {Context context new Context();context.setVariable(link, link);return templateEngine.process(email-template, context); // email-template是模板文件名}
}
创建Thymeleaf模板 在src/main/resources/templates目录下创建一个Thymeleaf模板文件例如email-template.html
!DOCTYPE html
html xmlns:thhttp://www.thymeleaf.org
headmeta charsetUTF-8title【信飞科技】重要通知/title
/head
bodyh1这是一封测试邮件/h1p点击以下链接访问示例网站/pa th:href${link}点击进行确认/a
/body
/html然后调用测试接口就会收到邮件撒花