This commit is contained in:
chenjianxing 2020-05-25 17:58:07 +08:00
commit 58ba058041
6 changed files with 43 additions and 32 deletions

View File

@ -28,7 +28,7 @@ public interface ParamConstants {
}
enum Classify implements ParamConstants {
MAIL("meter"),
MAIL("smtp"),
REGISTRY("registry");
private String value;
@ -86,14 +86,15 @@ public interface ParamConstants {
}
}
public static enum MAIL {
HOST("meter.host", 1),
PORT("meter.port", 2),
ACCOUNT("meter.account", 3),
PASSWORD("meter.password", 4),
SSL("meter.ssl", 5),
TLS("meter.tls", 6),
ANON("meter.anon", 7);
enum MAIL {
SERVER("smtp.server", 1),
PORT("smtp.port", 2),
ACCOUNT("smtp.account", 3),
PASSWORD("smtp.password", 4),
SSL("smtp.ssl", 5),
TLS("smtp.tls", 6),
SMTP("smtp.smtp", 7);
/* ANON("smtp.anon", 7);*/
private String key;
private Integer value;

View File

@ -4,21 +4,21 @@ import io.metersphere.base.domain.SystemParameter;
import io.metersphere.base.domain.SystemParameterExample;
import io.metersphere.base.mapper.SystemParameterMapper;
import io.metersphere.commons.constants.ParamConstants;
import io.metersphere.commons.exception.MSException;
import io.metersphere.commons.utils.EncryptUtils;
import io.metersphere.i18n.Translator;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.BooleanUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.mail.MessagingException;
import java.util.HashMap;
import java.util.List;
import java.util.Properties;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import javax.annotation.Resource;
@Service
public class SystemParameterService {
@ -65,7 +65,7 @@ public class SystemParameterService {
public void testConnection(HashMap<String, String> hashMap) {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setDefaultEncoding("UTF-8");
javaMailSender.setHost(hashMap.get(ParamConstants.MAIL.PORT.getKey()));
javaMailSender.setHost(hashMap.get(ParamConstants.MAIL.SERVER.getKey()));
javaMailSender.setPort(Integer.valueOf(hashMap.get(ParamConstants.MAIL.PORT.getKey())));
javaMailSender.setUsername(hashMap.get(ParamConstants.MAIL.ACCOUNT.getKey()));
javaMailSender.setPassword(hashMap.get(ParamConstants.MAIL.PASSWORD.getKey()));
@ -78,6 +78,12 @@ public class SystemParameterService {
props.put("mail.smtp.starttls.enable", "true");
}
javaMailSender.setJavaMailProperties(props);
try {
javaMailSender.testConnection();
} catch (MessagingException e) {
MSException.throwException(Translator.get("connection_failed"));
}
}
}

View File

@ -5,6 +5,7 @@ cannot_be_null=\tCannot be empty
number=Number
row=row
error=error
connection_failed=Connection failed
#user related
user_email_already_exists=User email already exists
user_name_is_null=User name cannot be null

View File

@ -13,6 +13,7 @@ password_is_null=密码不能为空
user_id_already_exists=用户id已存在
password_modification_failed=密码修改失败
cannot_delete_current_user=无法删除当前登录用户
connection_failed=连接失败
#load test
edit_load_test_not_found=无法编辑测试,未找到测试:
run_load_test_not_found=无法运行测试,未找到测试:
@ -89,4 +90,3 @@ options=选项
please_input_workspace_member=请填写该工作空间相关人员
test_case_report_template_repeat=同一工作空间下不能存在同名模版
plan_name_already_exists=测试计划名称已存在

View File

@ -5,6 +5,7 @@ cannot_be_null=不能為空
number=
row=
error=出錯
connection_failed=連接失敗
#user related
user_email_already_exists=用戶郵箱已存在
user_name_is_null=用戶名不能為空

View File

@ -125,13 +125,13 @@
},
testConnection(formInline) {
let param = {
"meter.host": this.formInline.host,
"meter.port": this.formInline.port,
"meter.account": this.formInline.account,
"meter.password": this.formInline.password,
"meter.ssl": this.SSL,
"meter.tls": this.TLS,
"meter.smtp": this.SMTP,
"smtp.server": this.formInline.host,
"smtp.port": this.formInline.port,
"smtp.account": this.formInline.account,
"smtp.password": this.formInline.password,
"smtp.ssl": this.SSL,
"smtp.tls": this.TLS,
"smtp.smtp": this.SMTP,
};
this.$refs[formInline].validate((valid) => {
if (valid) {
@ -140,8 +140,10 @@
if (flag) {
this.$success(this.$t('commons.connection_successful'));
} else {
this.$message.error(this.$t('commons.connection_failed'));
this.$error(this.$t('commons.connection_failed'));
}
}).catch(() => {
this.$info(this.$t('commons.connection_failed'));
});
} else {
return false;
@ -160,13 +162,13 @@
this.showSave = false;
this.show = true;
let param = [
{paramKey: "meter.host", paramValue: this.formInline.host, type: "text", sort: 1},
{paramKey: "meter.port", paramValue: this.formInline.port, type: "text", sort: 2},
{paramKey: "meter.account", paramValue: this.formInline.account, type: "text", sort: 3},
{paramKey: "meter.password", paramValue: this.formInline.password, type: "password", sort: 4},
{paramKey: "meter.ssl", paramValue: this.SSL, type: "text", sort: 5},
{paramKey: "meter.tls", paramValue: this.TLS, type: "text", sort: 6},
{paramKey: "meter.smtp", paramValue: this.SMTP, type: "text", sort: 7}
{paramKey: "smtp.host", paramValue: this.formInline.host, type: "text", sort: 1},
{paramKey: "smtp.port", paramValue: this.formInline.port, type: "text", sort: 2},
{paramKey: "smtp.account", paramValue: this.formInline.account, type: "text", sort: 3},
{paramKey: "smtp.password", paramValue: this.formInline.password, type: "password", sort: 4},
{paramKey: "smtp.ssl", paramValue: this.SSL, type: "text", sort: 5},
{paramKey: "smtp.tls", paramValue: this.TLS, type: "text", sort: 6},
{paramKey: "smtp.smtp", paramValue: this.SMTP, type: "text", sort: 7}
]
this.$refs[formInline].validate(valid => {