文章
61
标签
74
分类
27
前端
HTML
CSS
Vue教程
Vue项目
服务器
Linux
Nginx
AWS
归档
标签
分类
关于
Anthony的技术博客
SpringCloud
搜索
前端
HTML
CSS
Vue教程
Vue项目
服务器
Linux
Nginx
AWS
归档
标签
分类
关于
SpringCloud
发表于
2024-03-03
|
更新于
2024-03-05
|
Java
|
总字数:
0
|
阅读时长:
1分钟
|
浏览量:
上一篇
SpringBoot配置Gmail
申请应用程序验证码 配置二步验证 要配置二步验证,才能看到应用程序的选项 最后就能获取到应用程序验证码 引入代码 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency> application.properties文件配置 12345678910111213spring.mail.host=smtp.gmail.com# 邮件服务器端口号spring.mail.port=587# 邮件发送方的电子邮件地址spring.mail.username=你的Gmail邮箱账号# 邮件发送方的密码或应用程序专用密码一定要开启了两步验证spring.mail.password=应用程序专用密码# 启用TLS加密spring.mail.properties.mail.smtp.starttls.enable=true# 验证邮件服务器的身份spring.mail.properties.mail.smtp.auth=true# 邮件传输协议spring.mail.properties.mail.transport.protocol=smtp 配置的代码 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108@Servicepublic class EmailUtil implements EmailService{ private final Logger logger = LoggerFactory.getLogger(this.getClass()); //Spring Boot 提供了一个发送邮件的简单抽象,使用的是下面这个接口,这里直接注入即可使用 @Autowired private JavaMailSender mailSender; // 配置文件中我的谷歌邮箱 @Value("${spring.mail.username}") private String from; /** * 简单文本邮件 * @param to 收件人 * @param subject 主题 * @param content 内容 */ @Override public void sendSimpleMail(String to, String subject, String content) { //创建SimpleMailMessage对象 SimpleMailMessage message = new SimpleMailMessage(); //邮件发送人 message.setFrom(from); //邮件接收人 message.setTo(to); //邮件主题 message.setSubject(subject); //邮件内容 message.setText(content); //发送邮件 mailSender.send(message); } /** * html邮件 * @param to 收件人,多个时参数形式 :"
[email protected]
,
[email protected]
,
[email protected]
" * @param subject 主题 * @param content 内容 */ @Override public void sendHtmlMail(String to, String subject, String content) { //获取MimeMessage对象 MimeMessage message = mailSender.createMimeMessage(); MimeMessageHelper messageHelper; try { messageHelper = new MimeMessageHelper(message, true); //邮件发送人 messageHelper.setFrom(from); //邮件接收人,设置多个收件人地址 InternetAddress[] internetAddressTo = InternetAddress.parse(to); messageHelper.setTo(internetAddressTo); //messageHelper.setTo(to); //邮件主题 message.setSubject(subject); //邮件内容,html格式 messageHelper.setText(content, true); //发送 mailSender.send(message); //日志信息 logger.info("邮件已经发送。"); } catch (Exception e) { logger.error("发送邮件时发生异常!", e); } } /** * 带附件的邮件 * @param to 收件人 * @param subject 主题 * @param content 内容 * @param filePath 附件 */ @Override public void sendAttachmentsMail(String to, String subject, String content, String filePath) { MimeMessage message = mailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom(from); helper.setTo(to); helper.setSubject(subject); helper.setText(content, true); FileSystemResource file = new FileSystemResource(new File(filePath)); String fileName = filePath.substring(filePath.lastIndexOf(File.separator)); helper.addAttachment(fileName, file); mailSender.send(message); //日志信息 logger.info("邮件已经发送。"); } catch (Exception e) { logger.error("发送邮件时发生异常!", e); } } /** * 验证邮箱格式 * @param email * @return */ public boolean isEmail(String email) { if (email == null || email.length() < 1 || email.length() > 256) { return false; } Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"); return pattern.matcher(email).matches(); }} 1234567891011121314151617181920212223242526272829public interface EmailService { /** * 发送文本邮件 * * @param to 收件人 * @param subject 主题 * @param content 内容 */ void sendSimpleMail(String to, String subject, String content); /** * 发送HTML邮件 * * @param to 收件人 * @param subject 主题 * @param content 内容 */ public void sendHtmlMail(String to, String subject, String content); /** * 发送带附件的邮件 * * @param to 收件人 * @param subject 主题 * @param content 内容 * @param filePath 附件 */ public void sendAttachmentsMail(String to, String subject, String content, String filePath);} 123456789101112131415161718192021222324@Servicepublic class CodeUtil { @Autowired private StringRedisTemplate redisTemplate; public String generateVerificationCode() { // 生成6位随机数字验证码 return String.valueOf((int) ((Math.random() * 9 + 1) * 100000)); } // 验证验证码是否正确 public boolean verifyCode(String userId, String code,String key) { key = key + userId; String storedCode = redisTemplate.opsForValue().get(key); return code.equals(storedCode); } //删除redis中验证码 public void deleteCode(String userId,String key) { key = key + userId; redisTemplate.delete(key); }} 1234567//写在需要发送验证码的地方//存储时间 private static final int EXPIRATION_TIME_IN_MINUTES = 3; //键名 private static final String KEY_PREFIX =="xxx"; key=KEY_PREFIX+"123456"redisTemplate.opsForValue().set(key, 随机数字验证码, EXPIRATION_TIME_IN_MINUTES, TimeUnit.MINUTES);
下一篇
nexus3
Docker仓库 类型 端口 仓库名字 Host 9083 My-docker-host proxy My-docker-proxy group 9082 My-docker-group 创建一个存储目录 名字随便起,没有太多影响  创建docker host仓库    创建proxy仓库   group  docker客户端配置 12345678# vim /etc/docker/daemon.json{ "insecure-registries": ["54.255.206.44:9082", "54.255.206.44:9083"]}# 需要重启systemctl daemon-reloadsystemctl restart docker 登录 登录之后凭证保存在/.docker/config.json或者是在,部署的时候遇到一个问题,就是jenkins打包之后docker login可以,但是push的时候就提示没有授权,暂时的解决办法是,宿主机docker login下,保存凭证,然后jenkins容器挂载/root/.docker/config.json这个文件,jenkins打包就可以不用登录,直接推送 12345678910111213root@anthony:~# docker login http://54.255.206.44:9083Username: adminPassword:Error response from daemon: login attempt to http://54.255.206.44:9083/v2/ failed with status: 401 Unauthorized# ----------------------------------------------------------------------------root@anthony:~# docker login http://54.255.206.44:9082Username: adminPassword:WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded 123456789# 镜像操作# pull镜像docker pull nginx:latest# 给镜像打tagdocker tag nginx:latest 54.255.206.44:9082/my-docker-host/nginx:latest# 推送镜像docker push 54.255.206.44:9082/my-docker-host/nginx:latest
评论
Anthony
anthony的技术博客,记录开发,运维的笔记
文章
61
标签
74
分类
27
最新文章
Mac Apple芯片安装Win11
2025-05-06
ESM
2025-05-05
Flarum
2025-05-04
Flutter
2024-07-27
Pinia
2024-07-07
搜索
数据加载中