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;