1.添加邮箱登录,注册接口

This commit is contained in:
2025-08-04 21:58:55 +08:00
parent 715e6a1b70
commit f5cbe5cac2
17 changed files with 530 additions and 22 deletions

View 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;
}

View 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);
}

View File

@@ -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;
}
}