diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 7f85f87..6bde80e 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,4 +1,4 @@
-spring.datasource.password=12345678
+spring.datasource.password=123456
 spring.datasource.username=root
 spring.datasource.url=jdbc:mysql://localhost:3306/g8backend
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
diff --git a/src/test/java/com/example/g8backend/util/MailUtilTest.java b/src/test/java/com/example/g8backend/util/MailUtilTest.java
new file mode 100644
index 0000000..1f8a459
--- /dev/null
+++ b/src/test/java/com/example/g8backend/util/MailUtilTest.java
@@ -0,0 +1,47 @@
+package com.example.g8backend.util;
+
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.verify;
+
+@ExtendWith(MockitoExtension.class)
+class MailUtilTest {
+
+    @Mock
+    private JavaMailSender javaMailSender;
+
+    @InjectMocks
+    private mailUtil mailUtil; // 注意类名应与原类一致（原类名可能应改为大写，此处保持原样）
+
+    @Test
+    void sendMail_ShouldSendEmailWithCorrectParameters() {
+        // 准备测试数据
+        String to = "xxi13552467509@163.com";
+        String subject = "Test Subject";
+        String messageText = "Hello, this is a test email.";
+
+        // 调用被测试方法
+        mailUtil.sendMail(to, subject, messageText);
+
+        // 捕获传递给send方法的参数
+        ArgumentCaptor<SimpleMailMessage> argumentCaptor = ArgumentCaptor.forClass(SimpleMailMessage.class);
+        verify(javaMailSender).send(argumentCaptor.capture());
+
+        // 获取捕获的邮件对象
+        SimpleMailMessage sentMail = argumentCaptor.getValue();
+
+        // 验证邮件内容是否正确
+        assertThat(sentMail.getFrom()).isEqualTo("2038234690@qq.com");
+        assertThat(sentMail.getTo()).containsExactly(to);
+        assertThat(sentMail.getSubject()).isEqualTo(subject);
+        assertThat(sentMail.getText()).isEqualTo(messageText);
+    }
+}
\ No newline at end of file
