Commit 0dea4c22 by chenzy

【新增】纯文本发邮件

parent d802b0db
...@@ -51,6 +51,13 @@ ...@@ -51,6 +51,13 @@
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.0.3</version> <version>2.0.3</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.keymobile.syncdata.api;
import com.keymobile.syncdata.dto.EmailDTO;
import com.keymobile.syncdata.service.EmailService;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private EmailService emailService;
@Operation(summary = "发送纯文本")
@PostMapping("txt")
public void sendEmail(@RequestBody EmailDTO emailDTO) {
emailService.sendTextMailMessage(emailDTO.getToEmailAddress(), emailDTO.getTitle(), emailDTO.getContent());
}
}
package com.keymobile.syncdata.dto;
import lombok.Data;
@Data
public class EmailDTO {
private String toEmailAddress;
private String title;
private String content;
}
package com.keymobile.syncdata.service;
import com.keymobile.syncdata.dto.EmailDTO;
public interface EmailService {
public void sendTextMailMessage(String to, String subject, String text);
}
package com.keymobile.syncdata.service.impl;
import com.keymobile.syncdata.service.EmailService;
import io.micrometer.common.util.StringUtils;
import jakarta.mail.MessagingException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class EmailServiceImpl implements EmailService {
@Autowired
private JavaMailSenderImpl javaMailSender;
@Value("${spring.mail.username}")
private String sendMailer;
/**
* 发送纯文本邮件
*
* @param to
* @param subject
* @param text
*/
public void sendTextMailMessage(String to, String subject, String text) {
try {
//true 代表支持复杂的类型
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(), true);
//邮件发信人
mimeMessageHelper.setFrom(sendMailer);
//邮件收信人 1或多个
mimeMessageHelper.setTo(to.split(","));
//邮件主题
mimeMessageHelper.setSubject(subject);
//邮件内容
mimeMessageHelper.setText(text);
//邮件发送时间
mimeMessageHelper.setSentDate(new Date());
//发送邮件
javaMailSender.send(mimeMessageHelper.getMimeMessage());
System.out.println("发送邮件成功:" + sendMailer + "->" + to);
} catch (MessagingException e) {
e.printStackTrace();
System.out.println("发送邮件失败:" + e.getMessage());
}
}
/**
* 检测邮件信息类
*
* @param to
* @param subject
* @param text
*/
private void checkMail(String to, String subject, String text) {
if (StringUtils.isEmpty(to)) {
throw new RuntimeException("邮件收信人不能为空");
}
if (StringUtils.isEmpty(subject)) {
throw new RuntimeException("邮件主题不能为空");
}
if (StringUtils.isEmpty(text)) {
throw new RuntimeException("邮件内容不能为空");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment