This is an automated email from the ASF dual-hosted git repository.

benjobs pushed a commit to branch dev-2.1.3
in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git


The following commit(s) were added to refs/heads/dev-2.1.3 by this push:
     new 6c4a587a8 [Improve] Check email Setting before update (#3590)
6c4a587a8 is described below

commit 6c4a587a8a6c63023ba512098f7e2009c3592df6
Author: zhengke zhou <[email protected]>
AuthorDate: Thu Feb 29 16:14:50 2024 +0800

    [Improve] Check email Setting before update (#3590)
    
    * [Improve] check email before update
    
    * [Improve] check connection before update email settings
    
    * [Improve] ignore email check test
    
    * [Improve] write exception message to result
---
 .../core/service/impl/SettingServiceImpl.java      | 26 +++++++++++++++++++---
 .../console/core/service/SettingServiceTest.java   |  2 ++
 2 files changed, 25 insertions(+), 3 deletions(-)

diff --git 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
index 332f353b9..5a163b52b 100644
--- 
a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
+++ 
b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/core/service/impl/SettingServiceImpl.java
@@ -36,8 +36,13 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.mail.MessagingException;
+import javax.mail.Session;
+import javax.mail.Transport;
+
 import java.util.List;
 import java.util.Optional;
+import java.util.Properties;
 
 @Slf4j
 @Service
@@ -149,10 +154,25 @@ public class SettingServiceImpl extends 
ServiceImpl<SettingMapper, Setting>
 
   @Override
   public ResponseResult checkEmail(SenderEmail senderEmail) {
-    // TODO check
     ResponseResult result = new ResponseResult();
-    result.setStatus(200);
-    result.setMsg("success");
+    Properties props = new Properties();
+    props.put("mail.smtp.auth", "true");
+    props.put("mail.smtp.starttls.enable", "true");
+    props.put("mail.smtp.host", senderEmail.getHost());
+    props.put("mail.smtp.port", senderEmail.getPort());
+
+    Session session = Session.getInstance(props);
+    try {
+      Transport transport = session.getTransport("smtp");
+      transport.connect(
+          senderEmail.getHost(), senderEmail.getUserName(), 
senderEmail.getPassword());
+      transport.close();
+      result.setStatus(200);
+    } catch (MessagingException e) {
+      result.setStatus(500);
+      result.setMsg("connect to target mail server failed: " + e.getMessage());
+    }
+
     return result;
   }
 }
diff --git 
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
 
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
index b8232e9b5..57bfb8542 100644
--- 
a/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
+++ 
b/streampark-console/streampark-console-service/src/test/java/org/apache/streampark/console/core/service/SettingServiceTest.java
@@ -22,9 +22,11 @@ import org.apache.streampark.console.core.bean.DockerConfig;
 import org.apache.streampark.console.core.bean.SenderEmail;
 
 import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 
+@Disabled("'ese test cases can't be runnable due to external service is not 
available.")
 class SettingServiceTest extends SpringTestBase {
 
   @Autowired SettingService settingService;

Reply via email to