1.添加邮箱登录,注册接口
This commit is contained in:
13
src/main/java/vvpkassistant/mail/model/MailModel.java
Normal file
13
src/main/java/vvpkassistant/mail/model/MailModel.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package vvpkassistant.mail.model;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/*
|
||||
* @author: ziin
|
||||
* @date: 2025/8/4 15:48
|
||||
*/
|
||||
@Data
|
||||
public class MailModel {
|
||||
private String mailAddress;
|
||||
private Integer code;
|
||||
}
|
||||
11
src/main/java/vvpkassistant/mail/service/MailService.java
Normal file
11
src/main/java/vvpkassistant/mail/service/MailService.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package vvpkassistant.mail.service;
|
||||
|
||||
import vvpkassistant.mail.model.MailModel;
|
||||
|
||||
/*
|
||||
* @author: ziin
|
||||
* @date: 2025/8/4 15:42
|
||||
*/
|
||||
public interface MailService {
|
||||
Boolean sendMail(MailModel model);
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package vvpkassistant.mail.service;
|
||||
|
||||
import com.github.benmanes.caffeine.cache.Cache;
|
||||
import com.github.benmanes.caffeine.cache.Caffeine;
|
||||
import com.mailgun.api.v3.MailgunMessagesApi;
|
||||
import com.mailgun.client.MailgunClient;
|
||||
import com.mailgun.model.message.Message;
|
||||
import com.mailgun.model.message.MessageResponse;
|
||||
import feign.AsyncClient;
|
||||
import feign.Client;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import vvpkassistant.mail.model.MailModel;
|
||||
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/*
|
||||
* @author: ziin
|
||||
* @date: 2025/8/4 15:42
|
||||
*/
|
||||
@Service
|
||||
public class MailServiceImpl implements MailService {
|
||||
|
||||
@Value("${mailgun}")
|
||||
private String mailgunKey;
|
||||
|
||||
public final Cache<String, String> codeCache = Caffeine.newBuilder()
|
||||
.expireAfterWrite(10, TimeUnit.MINUTES) // 5 分钟过期
|
||||
.maximumSize(10_000) // 防止内存暴涨
|
||||
.build();
|
||||
|
||||
|
||||
@Override
|
||||
public Boolean sendMail(MailModel model) {
|
||||
ExecutorService executor = Executors.newFixedThreadPool(2);
|
||||
AsyncClient.Default<Object> asyncClient = new AsyncClient.Default<>(
|
||||
new Client.Default(null, null), executor);
|
||||
|
||||
MailgunMessagesApi mailgunAsyncMessagesApi = MailgunClient.config(mailgunKey)
|
||||
.client(asyncClient)
|
||||
.createAsyncApi(MailgunMessagesApi.class);
|
||||
|
||||
Message message = Message.builder()
|
||||
.from("")
|
||||
.to(model.getMailAddress())
|
||||
.subject("your mail address Verification code is : ")
|
||||
.html("<html>\n" +
|
||||
"<body>\n" +
|
||||
"\t<h1>Sending HTML emails with Mailgun</h1>\n" +
|
||||
"\t<p style=\"color:blue; font-size:30px;\">Hello world</p>\n" +
|
||||
"\t<p style=\"font-size:30px;\">More examples can be found <a href=\"https://documentation.mailgun.com/en/latest/api-sending.html#examples\">here</a></p>\n" +
|
||||
"</body>\n" +
|
||||
"</html>")
|
||||
.build();
|
||||
|
||||
MessageResponse messageResponse = mailgunAsyncMessagesApi.sendMessage("www.baidu.com", message);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user