SpringBoot整合邮件服务(QQ邮箱)

SpringBoot整合邮件服务

配置

登录到QQ邮箱:https://mail.qq.com/

选择账户

image-20221206143045740

点击开启SMTP服务:

image-20221206143209397

发送短信:

image.png

发送完,点击我已发送,然后得到密码:

image-20221206143525274

POM依赖:

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

application.yml

spring:
  mail:
    # 配置 SMTP 服务器地址 
    host: smtp.qq.com
    # 发送者邮箱
    username: 你的邮箱
    # 配置密码,注意不是真正的密码,而是刚刚申请到的授权码
    password: 申请的密码
    # 端口号465或587
    port: 587 
    # 默认的邮件编码为UTF-8
    default-encoding: UTF-8

Java集成EmailService

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.util.Date;

@Component
@Slf4j
public class EmailUtils {
    @Autowired
    JavaMailSender javaMailSender;

    @Value("${spring.mail.username}")
    String username;

    public void sendHtml(String title, String html, String to) {
        MimeMessage mailMessage = javaMailSender.createMimeMessage();
        //需要借助Helper类
        MimeMessageHelper helper = new MimeMessageHelper(mailMessage);
        try {
            helper.setFrom(username);  // 必填
            helper.setTo(to);   // 必填
//            helper.setBcc("密送人");   // 选填
            helper.setSubject(title);  // 必填
            helper.setSentDate(new Date());//发送时间
            helper.setText(html, true);   // 必填  第一个参数要发送的内容,第二个参数是不是Html格式。
            javaMailSender.send(mailMessage);
        } catch (MessagingException e) {
            log.error("发送邮件失败", e);
        }
    }

}

在controller里定义接口:

@ApiOperation(value = "邮箱验证接口")
@GetMapping("/email")
public Result sendEmail(@RequestParam String email, @RequestParam String type) {
    userService.sendEmail(email, type);
    return Result.success();
}

在业务实现层UserServiceImpl写业务逻辑

void sendEmail(String email, String type);

private static final Map<String, Long> CODE_MAP = new ConcurrentHashMap<String, Long>();

@Resource
EmailUtils emailUtils;
@Override
public void sendEmail(String email, String type) {
  String  code = RandomUtil.randomNumbers(6);
  log.info("本次验证码的code是:{}", code);
  String context = "<b>尊敬的用户:</b><br><br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;您好," +
    "Partner交友网提醒您本次的验证码是:<b>{}</b>," +
    "有效期5分钟。<br><br><br><b>Partner交友网</b>";
  String html = StrUtil.format(context, code);
  if ("REGISTER".equals(type)) {
    // 多线程异步请求
    ThreadUtil.execAsync(() -> {
      emailUtils.sendHtml("【partner交友网】邮箱注册验证",html, email);
    });
    CODE_MAP.put(code, System.currentTimeMillis());
  }
}
输入邮箱,点击发送:

image-20221206152522658

在后端我们可以看到验证码为:

image-20221206152612701

登录邮箱:查看邮件即可

image-20221212103226949

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《基于Spring Boot的客户信息管理系统》是一个旨在帮助企业高效管理客户信息的创新项目。该系统采用了现代化的Spring Boot后端框架,结合Vue前端技术,致力于为企业提供一个集中管理客户信息、分析和维护客户关系的平台。 该系统的主要目标是为企业提供全面的客户信息管理功能,包括客户档案管理、客户交互记录和客户分析等。企业可以通过系统管理客户的基本信息,包括姓名、联系方式、地址等。系统还支持记录客户的交互活动,包括电话沟通、邮件往来和会议记录等。通过系统的客户分析功能,企业可以了解客户的偏好、需求和消费行为,以便更好地满足客户的需求。 除了客户信息管理功能,该系统还提供了客户关系管理功能。企业可以通过系统跟踪和维护与客户的关系,包括记录客户的反馈、处理客户的投诉和提供个性化的服务。系统还支持任务管理和提醒功能,帮助企业及时跟进客户需求和活动。 该系统注重用户体验和界面设计。结合Vue前端技术,系统具有直观、交互友好的用户界面。通过使用Spring Boot框架,系统具有快速响应和稳定性能。系统还支持多设备访问,用户可以在不同的设备上方便地访问和使用系统。 总之,基于Spring Boot的客户信息管理系统是一个为企业提供高效、智能化客户信息管理和维护客户关系的综合平台。通过该系统,企业可以方便地管理客户信息、记录客户交互活动和分析客户行为。系统帮助企业建立良好的客户关系,提供个性化的服务,并帮助企业更好地满足客户的需求。无论是销售团队还是客户服务团队,都能从该系统中获得便捷、高效和智能化的客户信息管理体验。
Spring Boot整合QQ邮箱,首先需要导入邮件依赖包,并在配置文件中设置相关信息。具体步骤如下: 1. 在项目的pom.xml文件中添加spring-boot-starter-mail依赖: ``` <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> ``` 2. 在application.yaml(或application.properties)配置文件中添加QQ邮箱的相关信息,包括用户名(即QQ邮箱账号)、密码(即QQ邮箱的授权码)、以及SMTP服务器地址和端口号: ``` spring[email protected] spring.mail.password=your-password spring.mail.host=smtp.qq.com spring.mail.properties.mail.smtp.ssl.enable=true ``` 请注意替换上述代码中的"[email protected]"和"your-password"为你自己的邮箱账号和授权码。 3. 编写发送邮件的方法,可以使用JavaMailSender来发送简单文字邮件或复杂类型邮件。示例代码如下: ``` // 导入JavaMailSender相关的包和类 import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; // 在需要发送邮件的地方注入JavaMailSender @Autowired private JavaMailSender mailSender; // 发送简单文字邮件的方法 public void sendSimpleEmail() { SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setSubject("邮件主题"); mailMessage.setText("邮件内容"); mailMessage.setTo("[email protected]"); mailMessage.setFrom("[email protected]"); mailSender.send(mailMessage); } // 发送复杂类型邮件的方法 public void sendComplexEmail() throws MessagingException { MimeMessage mimeMessage = mailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setSubject("邮件主题"); helper.setText("<p style='color:red'>邮件内容</p>", true); helper.addAttachment("附件名称", new File("附件路径")); helper.setTo("[email protected]"); helper.setFrom("[email protected]"); mailSender.send(mimeMessage); } ``` 请注意将上述示例代码中的"[email protected]"替换为你自己的邮箱地址。 通过以上步骤,你就可以在Spring Boot中成功整合QQ邮箱并发送邮件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [SpringBoot整合邮件任务(qq为例)](https://blog.csdn.net/qq2844509367/article/details/127500442)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java小豪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值