From bd5aae46d9bea20fd9eab7a60835b9aabc4c173d Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Thu, 17 Aug 2023 12:36:06 +0300 Subject: [PATCH] fixed testConnection method for mail sender if oauth2 enabled --- .../thingsboard/server/service/mail/TbMailSender.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java b/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java index 0a9b173247..75dea3ad6a 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java @@ -35,6 +35,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.mail.MailOauth2Provider; import org.thingsboard.server.dao.exception.IncorrectParameterException; +import javax.mail.Transport; import javax.mail.internet.MimeMessage; import java.time.Duration; import java.time.Instant; @@ -80,6 +81,16 @@ public class TbMailSender extends JavaMailSenderImpl { super.doSend(mimeMessages, originalMessages); } + @SneakyThrows + @Override + public void testConnection() { + if (oauth2Enabled && (System.currentTimeMillis() > tokenExpires)){ + refreshAccessToken(); + setPassword(accessToken); + } + super.testConnection(); + } + private Properties createJavaMailProperties(JsonNode jsonConfig) { Properties javaMailProperties = new Properties(); String protocol = jsonConfig.get("smtpProtocol").asText();