|
@@ -0,0 +1,72 @@
|
|
|
+package com.fjhx.service.impl;
|
|
|
+
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.fjhx.config.http.EmailEngineUtil;
|
|
|
+import com.fjhx.service.IAccountService;
|
|
|
+import com.fjhx.vo.BindingVo;
|
|
|
+import com.fjhx.vo.VerifyResult;
|
|
|
+import com.fjhx.vo.VerifyVo;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class AccountServiceImpl implements IAccountService {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void binding(BindingVo bindingVo) {
|
|
|
+ // 验证邮件配置参数
|
|
|
+ VerifyVo verifyVo = createVerifyVo(bindingVo);
|
|
|
+ // 验证邮件配置是否正确
|
|
|
+ VerifyResult verifyResult = EmailEngineUtil.post("v1/verifyAccount", verifyVo, VerifyResult.class);
|
|
|
+ // 解析验证结果
|
|
|
+ parsingVerifyResult(verifyResult);
|
|
|
+
|
|
|
+
|
|
|
+ System.err.println(JSONObject.toJSONString(verifyResult));
|
|
|
+ }
|
|
|
+
|
|
|
+ private VerifyVo createVerifyVo(BindingVo bindingVo) {
|
|
|
+ VerifyVo verifyVo = new VerifyVo();
|
|
|
+
|
|
|
+ VerifyVo.Auth auth = new VerifyVo.Auth();
|
|
|
+ auth.setUser(bindingVo.getEmail());
|
|
|
+ auth.setPass(bindingVo.getSecretKey());
|
|
|
+
|
|
|
+ VerifyVo.Tls tls = new VerifyVo.Tls();
|
|
|
+ tls.setRejectUnauthorized(true);
|
|
|
+ tls.setMinVersion("TLSv1.2");
|
|
|
+
|
|
|
+ VerifyVo.Imap imap = new VerifyVo.Imap();
|
|
|
+ imap.setAuth(auth);
|
|
|
+ imap.setPort(bindingVo.getImapPort());
|
|
|
+ imap.setHost(bindingVo.getImapHost());
|
|
|
+ imap.setTls(tls);
|
|
|
+ imap.setSecure(true);
|
|
|
+ verifyVo.setImap(imap);
|
|
|
+
|
|
|
+ VerifyVo.Smtp smtp = new VerifyVo.Smtp();
|
|
|
+ smtp.setAuth(auth);
|
|
|
+ smtp.setPort(bindingVo.getSmtpPort());
|
|
|
+ smtp.setHost(bindingVo.getSmtpHost());
|
|
|
+ smtp.setTls(tls);
|
|
|
+ smtp.setSecure(true);
|
|
|
+ verifyVo.setSmtp(smtp);
|
|
|
+
|
|
|
+ return verifyVo;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 解析验证结果
|
|
|
+ */
|
|
|
+ private void parsingVerifyResult(VerifyResult verifyResult) {
|
|
|
+ VerifyResult.Status imap = verifyResult.getImap();
|
|
|
+ VerifyResult.Status smtp = verifyResult.getSmtp();
|
|
|
+
|
|
|
+ Assert.notNull(imap, "imap解析结果为空");
|
|
|
+ Assert.notNull(smtp, "smtp解析结果为空");
|
|
|
+
|
|
|
+ Assert.isTrue(imap.getSuccess(), "imap解析失败:error:{} ;code:{};", imap.getError(), imap.getCode());
|
|
|
+ Assert.isTrue(smtp.getSuccess(), "smtp解析失败:error:{} ;code:{};", smtp.getError(), smtp.getCode());
|
|
|
+ }
|
|
|
+
|
|
|
+}
|