| | |
| | | package com.yc.crm.mail.action; |
| | | |
| | | import com.sun.mail.imap.IMAPStore; |
| | | import com.yc.action.mail.EmailConfigUtils; |
| | | import com.yc.crm.mail.entity.FoundationEntity; |
| | | import com.yc.crm.mail.entity.T482102Entity; |
| | | import com.yc.crm.mail.service.MailAccountIfc; |
| | | import com.yc.crm.mail.service.MailIfc; |
| | | import com.yc.crm.mail.service.MailServiceIfc; |
| | | import com.yc.crm.mail.util.AllBackMsg; |
| | | import com.yc.entity.DataSourceEntity; |
| | | import com.yc.factory.FactoryBean; |
| | | import com.yc.multiData.MultiDataSource; |
| | | import com.yc.multiData.SpObserver; |
| | | import com.yc.utils.SessionKey; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.mail.*; |
| | |
| | | @RestController |
| | | @RequestMapping("/crm/mail/account") |
| | | public class MailAccount { |
| | | ThreadPoolTaskExecutor threadPoolExecutor = (ThreadPoolTaskExecutor) FactoryBean.getBean("threadPoolExecutor");//线程池 |
| | | |
| | | @Autowired |
| | | MailAccountIfc mailAccountIfc; |
| | | @Autowired |
| | | MailIfc mailIfc; |
| | | |
| | | @Autowired |
| | | MailServiceIfc mailServiceIfc; |
| | | /** |
| | | * 添加邮箱配置信息 |
| | | * |
| | |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | if (StringUtils.isBlank(account.getEmail())) { |
| | | msg.setFail("请输入邮箱地址"); |
| | | msg.setFail("请输入邮箱账号"); |
| | | return msg; |
| | | } |
| | | if (account.getMailType().equals(0) || account.getMailType().equals(1)) { |
| | | if (StringUtils.isBlank(account.getPassword())) { |
| | | msg.setFail("请输入邮箱密码"); |
| | | return msg; |
| | | } |
| | | account.setReceiveEmail(account.getEmail()); |
| | | account.setReceivePassword(account.getPassword()); |
| | | account.setSmtpEmail(account.getEmail()); |
| | | account.setSmtpPassword(account.getPassword()); |
| | | } |
| | | if (account.getMailType().equals(1) || account.getMailType().equals(2)) { |
| | | if (StringUtils.isBlank(account.getReceiveProtocol())) { |
| | | msg.setFail("请选择协议类型"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getReceiveHost())) { |
| | | msg.setFail("请输入收邮件服务器"); |
| | | return msg; |
| | | } |
| | | if (account.getReceivePort().equals(0)) { |
| | | msg.setFail("请输入收邮件服务器端口"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpHost())) { |
| | | msg.setFail("请输入发邮件服务器"); |
| | | return msg; |
| | | } |
| | | if (account.getSmtpPort().equals(0)) { |
| | | msg.setFail("请输入发邮件服务器端口"); |
| | | return msg; |
| | | } |
| | | if (account.getMailType().equals(2)) { |
| | | if (StringUtils.isBlank(account.getReceiveEmail())) { |
| | | msg.setFail("请输入收件账号"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getReceivePassword())) { |
| | | msg.setFail("请输入收件密码"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpEmail())) { |
| | | msg.setFail("请输入发件账号"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpPassword())) { |
| | | msg.setFail("请输入发件密码"); |
| | | return msg; |
| | | } |
| | | } |
| | | } |
| | | HttpSession session = request.getSession(); |
| | | String companyId = (String) session.getAttribute(SessionKey.COMPANY_ID); |
| | |
| | | account.setCompanyName(companyName); |
| | | account.setUserCode(userCode); |
| | | account.setUserName(userName); |
| | | if (account.getMailType().equals(0)) { |
| | | //初始配置 |
| | | getMailConfigProperties(account); |
| | | } |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | mailAccountIfc.addEmailAccount(account);//添加新的邮箱配置 |
| | | //邮件检测 |
| | | String error = emailDetection(account); |
| | | if (StringUtils.isNotBlank(error)) { |
| | | account.setMailStatus("异常"); |
| | | } |
| | | account= mailAccountIfc.addEmailAccount(account);//添加新的邮箱配置 |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("companyId", companyId); |
| | | map.put("companyName", companyName); |
| | | map.put("userCode", userCode); |
| | | map.put("userName", userName); |
| | | map.put("email", account.getEmail()); |
| | | msg.setSuccess("已保存", map); |
| | | if (StringUtils.isBlank(error)) { |
| | | map.put("code", 0); |
| | | map.put("companyId", companyId); |
| | | map.put("companyName", companyName); |
| | | map.put("userCode", userCode); |
| | | map.put("userName", userName); |
| | | map.put("email", account.getEmail()); |
| | | msg.setSuccess("已保存", map); |
| | | //多线程收邮件 |
| | | threadPoolExecutor.execute(new MailController.ReceivingEmailsSave(mailServiceIfc, account, new FoundationEntity(request))); |
| | | } else { |
| | | map.put("code", -1); |
| | | map.put("mailStatus", "异常"); |
| | | map.put("error", error); |
| | | msg.setSuccess("执行成功", map); |
| | | } |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | /** |
| | | * 添加别名邮箱 |
| | | * |
| | | * @param account |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @GetMapping("/addAliasEmail.do") |
| | | public AllBackMsg addAliasEmail(String aliasEmail, Integer accountId, HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | if (StringUtils.isBlank(aliasEmail)) { |
| | | msg.setFail("请输入别名邮箱"); |
| | | return msg; |
| | | } |
| | | if (accountId.equals(0)) { |
| | | msg.setFail("邮箱账号Id不能为空"); |
| | | return msg; |
| | | } |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | if (StringUtils.isBlank(userCode)) { |
| | | msg.setFail("登录用户已过期,请检查"); |
| | | return msg; |
| | | } |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | T482102Entity t482102Entity = mailAccountIfc.getAccountInfo(userCode, accountId); |
| | | if (t482102Entity.getMailType().equals(0) || t482102Entity.getMailType().equals(1)) { |
| | | t482102Entity.setEmail(aliasEmail); |
| | | t482102Entity.setReceiveEmail(aliasEmail); |
| | | t482102Entity.setSmtpEmail(aliasEmail); |
| | | } |
| | | //邮箱检测 |
| | | String error = emailDetection(t482102Entity); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if (StringUtils.isBlank(error)) { |
| | | mailAccountIfc.updateAliasEmail(aliasEmail, accountId); |
| | | map.put("code", 0); |
| | | map.put("userCode", userCode); |
| | | map.put("aliasEmail", aliasEmail); |
| | | map.put("accountId", accountId); |
| | | msg.setSuccess("已保存", map); |
| | | } else { |
| | | map.put("code", -1); |
| | | map.put("mailStatus", "异常"); |
| | | map.put("error", error); |
| | | msg.setSuccess("执行成功", map); |
| | | } |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | |
| | | msg.setFail("获取不到邮箱配置ID,请检查"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getEmail())) { |
| | | msg.setFail("请输入邮箱账号"); |
| | | return msg; |
| | | } |
| | | if (account.getMailType().equals(0)) { |
| | | account.setMailType(1); |
| | | } |
| | | if (account.getMailType().equals(1)) { |
| | | if (StringUtils.isBlank(account.getPassword())) { |
| | | msg.setFail("请输入邮箱密码"); |
| | | return msg; |
| | | } |
| | | account.setReceiveEmail(account.getEmail()); |
| | | account.setReceivePassword(account.getPassword()); |
| | | account.setSmtpEmail(account.getEmail()); |
| | | account.setSmtpPassword(account.getPassword()); |
| | | } else if (account.getMailType().equals(2)) { |
| | | if (StringUtils.isBlank(account.getReceiveEmail())) { |
| | | msg.setFail("请输入收件账号"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getReceivePassword())) { |
| | | msg.setFail("请输入收件密码"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpEmail())) { |
| | | msg.setFail("请输入发件账号"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpPassword())) { |
| | | msg.setFail("请输入发件密码"); |
| | | return msg; |
| | | } |
| | | } |
| | | if (StringUtils.isBlank(account.getReceiveHost())) { |
| | | msg.setFail("请输入收邮件服务器"); |
| | | return msg; |
| | | } |
| | | if (account.getReceivePort().equals(0)) { |
| | | msg.setFail("请输入收邮件服务器端口"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(account.getSmtpHost())) { |
| | | msg.setFail("请输入发邮件服务器"); |
| | | return msg; |
| | | } |
| | | if (account.getSmtpPort().equals(0)) { |
| | | msg.setFail("请输入发邮件服务器端口"); |
| | | return msg; |
| | | } |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | String userName = (String) session.getAttribute(SessionKey.USER_NAME); |
| | |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | mailAccountIfc.updateEmailAccount(account); |
| | | String error = emailDetection(account); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("userCode", userCode); |
| | | map.put("userName", userName); |
| | | map.put("email", account.getEmail()); |
| | | msg.setSuccess("已更新", map); |
| | | if (StringUtils.isBlank(error)) { |
| | | map.put("code", 0); |
| | | map.put("userCode", userCode); |
| | | map.put("userName", userName); |
| | | map.put("email", account.getEmail()); |
| | | msg.setSuccess("已更新", map); |
| | | } else { |
| | | //异常处理 |
| | | mailAccountIfc.updateMailStatus("异常", account.getAccountId()); |
| | | map.put("code", -1); |
| | | map.put("mailStatus", "异常"); |
| | | map.put("error", error); |
| | | msg.setSuccess("执行成功", map); |
| | | } |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | |
| | | public AllBackMsg deleteAccount(@RequestParam(defaultValue = "0") Integer accountId, HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | if (accountId == 0) { |
| | | if (accountId.equals(0)) { |
| | | msg.setFail("邮箱编号ID获取不到"); |
| | | return msg; |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * 查询邮箱配置列表 |
| | | * |
| | | * @param search 搜索 |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @GetMapping("/getAccountList.do") |
| | | public AllBackMsg getAccountList(HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | List<T482102Entity> t482102Entities = mailAccountIfc.getAccount(userCode); |
| | | if (t482102Entities.size() > 0) { |
| | | msg.setSuccess("执行成功", t482102Entities); |
| | | } else { |
| | | msg.setFail("未找到配置信息,0条数据"); |
| | | } |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 查询个人邮箱信息 |
| | | * |
| | | * @param search 搜索 |
| | |
| | | public AllBackMsg getAccount(String mail, HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | if (StringUtils.isBlank(mail)) { |
| | | msg.setFail("参数 邮件账号 不能为空"); |
| | | return msg; |
| | | } |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | List<T482102Entity> t482102Entities = mailAccountIfc.getAccount(userCode, mail); |
| | | if (t482102Entities.size() > 0) { |
| | | msg.setSuccess("执行成功", t482102Entities.get(0)); |
| | | T482102Entity t482102Entities = mailAccountIfc.getAccountInfo(userCode, mail); |
| | | if (StringUtils.isNotBlank(t482102Entities.getEmail())) { |
| | | msg.setSuccess("执行成功", t482102Entities); |
| | | } else { |
| | | msg.setFail("未找到配置信息,0条数据"); |
| | | msg.setFail("未找到配置信息"); |
| | | } |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | /** |
| | | * 检测绑定是否已经存在(是否已绑定) |
| | | * |
| | | * @param email |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @GetMapping("/eEmailExists.do") |
| | | public AllBackMsg eEmailExists(String email, HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | |
| | | try { |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | if (StringUtils.isBlank(userCode)) { |
| | | msg.setFail("登录用户已过期,请检查"); |
| | | return msg; |
| | | } |
| | | if (StringUtils.isBlank(email)) { |
| | | msg.setFail("邮箱不能为空"); |
| | | return msg; |
| | | } |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | //根据当前用户查询绑定的邮箱信息 |
| | | T482102Entity emailEntity = mailAccountIfc.getAccountInfo(userCode, email);//返回邮箱的账号信息 |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if (emailEntity == null || StringUtils.isBlank(emailEntity.getEmail())) { |
| | | map.put("code", 0); |
| | | map.put("msg", "该邮箱未绑定"); |
| | | } else { |
| | | map.put("code", -1); |
| | | map.put("msg", "该邮箱已绑定"); |
| | | } |
| | | msg.setSuccess("执行成功", map); |
| | | } catch (MessagingException e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | |
| | | @GetMapping("/isEmailValid.do") |
| | | public AllBackMsg isEmailValid(String email, HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | |
| | | try { |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | |
| | | msg.setFail("找不到邮箱:" + email + "配置信息请完善。"); |
| | | return msg; |
| | | } |
| | | Properties props = new Properties(); |
| | | props.put("mail.smtp.host", emailEntity.getSmtpHost()); // 替换为你的SMTP服务器 |
| | | props.put("mail.smtp.port", emailEntity.getSmtpPort()); // 或者你使用的端口 |
| | | props.put("mail.smtp.auth", "true"); |
| | | props.put("mail.smtp.starttls.enable", "true"); |
| | | if (emailEntity.getSmtpHost().contains("163")) {//163邮箱设置 |
| | | props.put("mail.smtp.ssl.enable", "true"); |
| | | String error = emailDetection(emailEntity); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if (StringUtils.isBlank(error)) { |
| | | map.put("code", 0); |
| | | map.put("email", emailEntity.getEmail()); |
| | | map.put("protocol", emailEntity.getReceiveProtocol()); |
| | | map.put("receiveHost", emailEntity.getReceiveHost()); |
| | | map.put("receiveSSL", emailEntity.isReceiveSSL()); |
| | | map.put("receivePort", emailEntity.getReceivePort()); |
| | | map.put("smtpHost", emailEntity.getSmtpHost()); |
| | | map.put("smtpSSL", emailEntity.isSmtpSSL()); |
| | | map.put("smtpPort", emailEntity.getSmtpPort()); |
| | | map.put("proxyFlag", emailEntity.isProxyFlag()); |
| | | map.put("biSyncFlag", emailEntity.isBiSyncFlag()); |
| | | map.put("mailStatus", "正常"); |
| | | msg.setSuccess("执行成功", map); |
| | | } else { |
| | | //异常处理 |
| | | mailAccountIfc.updateMailStatus("异常", emailEntity.getAccountId()); |
| | | map.put("code", -1); |
| | | map.put("mailStatus", "异常"); |
| | | map.put("error", error); |
| | | msg.setSuccess("执行成功", map); |
| | | } |
| | | |
| | | Session mailSession = Session.getInstance(props, new Authenticator() { |
| | | @Override |
| | | protected PasswordAuthentication getPasswordAuthentication() { |
| | | return new PasswordAuthentication(emailEntity.getEmail(), emailEntity.getPassword()); |
| | | } |
| | | }); |
| | | |
| | | // Store store = mailSession.getTransport("imaps"); // 使用IMAP协议 |
| | | // store.connect(); |
| | | // Session mailSession = Session.getInstance(props, null); |
| | | // mailSession.setDebug(false); |
| | | // |
| | | Transport transport = mailSession.getTransport(); |
| | | transport.connect(); |
| | | transport.close(); |
| | | // transport.connect(emailEntity.getSmtpHost(),emailEntity.getEmail(), emailEntity.getPassword()); |
| | | // transport.sendMessage(new MimeMessage(mailSession), new Address[]{new InternetAddress(emailEntity.getEmail())}); |
| | | // transport.close(); |
| | | msg.setOk("有效邮箱"); |
| | | } catch (MessagingException e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } catch (Exception e) { |
| | |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | /** |
| | | * 邮箱检测 |
| | | * |
| | | * @param emailEntity |
| | | * @return |
| | | * @throws MessagingException |
| | | */ |
| | | private String emailDetection(T482102Entity emailEntity) throws MessagingException { |
| | | String errorMsg = ""; |
| | | try { |
| | | String protocol = emailEntity.getReceiveProtocol().toLowerCase();//接收协议 imap pop3 |
| | | Properties props = new Properties(); |
| | | props.put("mail.store.protocol", protocol);//指定接收的邮件协议 IMAP over pop3 |
| | | if (protocol.contains("imap")) { |
| | | props.put("mail.imaps.host", emailEntity.getReceiveHost()); |
| | | props.put("mail.imaps.port", emailEntity.getReceivePort()); |
| | | } else if (protocol.contains("pop3")) { |
| | | props.put("mail.pop3.host", emailEntity.getReceiveHost()); |
| | | props.put("mail.pop3.port", emailEntity.getReceivePort()); |
| | | } else { |
| | | props.put("mail.imaps.host", emailEntity.getReceiveHost()); |
| | | props.put("mail.imaps.port", emailEntity.getReceivePort()); |
| | | } |
| | | // props.put("mail.imap.ssl.enable", emailEntity.isReceiveSSL()+""); // 使用 SSL 连接 |
| | | // props.put("mail.imap.starttls.enable", "true");//// IMAP 协议设置 STARTTLS |
| | | |
| | | props.put("mail.smtp.auth", "true"); |
| | | props.put("mail.smtp.ssl.enable", emailEntity.isSmtpSSL() + "");//启用SSL |
| | | props.put("mail.smtp.host", emailEntity.getSmtpHost()); // 替换为你的SMTP服务器 |
| | | props.put("mail.smtp.port", emailEntity.getSmtpPort()); // 或者你使用的端口 |
| | | |
| | | // props.put("mail.smtp.starttls.enable", "true");//启用tls |
| | | // props.setProperty("mail.smtp.socketFactory.port", "587");//启用tls后port:587 |
| | | |
| | | |
| | | HashMap IAM = new HashMap(); |
| | | //带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。 |
| | | IAM.put("name", emailEntity.getReceiveEmail()); |
| | | IAM.put("version", emailEntity.getDocVersion() + ""); |
| | | IAM.put("vendor", emailEntity.getCompanyName()); |
| | | IAM.put("support-email", emailEntity.getEmail()); |
| | | |
| | | //创建会话 |
| | | Session session = Session.getInstance(props, new Authenticator() { |
| | | @Override |
| | | protected PasswordAuthentication getPasswordAuthentication() { |
| | | return new PasswordAuthentication(emailEntity.getReceiveEmail(), emailEntity.getReceivePassword()); |
| | | } |
| | | }); |
| | | |
| | | //存储对象 |
| | | IMAPStore store = (IMAPStore) session.getStore(protocol);//imap协议或pop3协议类型(推荐你使用IMAP协议来存取服务器上的邮件。) |
| | | //连接 |
| | | store.connect(emailEntity.getReceiveHost(), emailEntity.getReceiveEmail(), emailEntity.getReceivePassword()); |
| | | store.id(IAM);//163邮箱需要,不然会报:A3 NO SELECT Unsafe Login. Please contact kefu@188.com for help |
| | | Folder folder = null; |
| | | // 获得收件箱 |
| | | folder = store.getFolder("INBOX"); |
| | | // 以读写模式打开收件箱 |
| | | folder.open(Folder.READ_WRITE); |
| | | folder.close(false); |
| | | store.close(); |
| | | |
| | | Transport transport = session.getTransport(); |
| | | transport.connect(); |
| | | transport.close(); |
| | | mailAccountIfc.updateMailStatus("正常", emailEntity.getAccountId()); |
| | | } catch (MessagingException e) { |
| | | errorMsg = e.getCause() != null ? e.getCause().getMessage() : e.getMessage(); |
| | | } catch (Exception e) { |
| | | errorMsg = e.getCause() != null ? e.getCause().getMessage() : e.getMessage(); |
| | | } |
| | | return errorMsg; |
| | | } |
| | | |
| | | /** |
| | | * 常规查询 |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @GetMapping("/getConvention.do") |
| | | public AllBackMsg getConvention(HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | |
| | | try { |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | if (StringUtils.isBlank(userCode)) { |
| | | msg.setFail("登录用户已过期,请检查"); |
| | | return msg; |
| | | } |
| | | |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | //根据当前用户查询绑定的邮箱信息 |
| | | |
| | | } catch (MessagingException e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | /** |
| | | * 常规更新 |
| | | * @param request |
| | | * @param response |
| | | * @return |
| | | */ |
| | | @GetMapping("/updateConvention.do") |
| | | public AllBackMsg updateConvention(HttpServletRequest request, HttpServletResponse response) { |
| | | AllBackMsg msg = new AllBackMsg(); |
| | | try { |
| | | HttpSession session = request.getSession(); |
| | | String userCode = (String) session.getAttribute(SessionKey.USERCODE); |
| | | if (StringUtils.isBlank(userCode)) { |
| | | msg.setFail("登录用户已过期,请检查"); |
| | | return msg; |
| | | } |
| | | |
| | | DataSourceEntity dataSource = MultiDataSource.getDataSourceMap(request);//获取数据源 |
| | | SpObserver.setDBtoInstance("_" + dataSource.getDbId()); |
| | | //根据当前用户查询绑定的邮箱信息 |
| | | |
| | | } catch (MessagingException e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } catch (Exception e) { |
| | | msg.setFail(e.getCause() != null ? e.getCause().getMessage() : e.getMessage()); |
| | | } finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | return msg; |
| | | } |
| | | |
| | | private T482102Entity getMailConfigProperties(T482102Entity t482102) { |
| | | try { |
| | | String email = t482102.getEmail(); |
| | | int index = email.lastIndexOf("@"); |
| | | String emailSuffix = email.substring(index + 1).toLowerCase();//邮箱后缀 |
| | | String port = ""; |
| | | t482102.setReceiveHost(EmailConfigUtils.getMailConfig("mail.imap.host." + emailSuffix)); |
| | | t482102.setSmtpHost(EmailConfigUtils.getMailConfig("mail.smtp.host." + emailSuffix)); |
| | | port = EmailConfigUtils.getMailConfig("mail.imap.port." + emailSuffix); |
| | | if (StringUtils.isNotBlank(port)) { |
| | | t482102.setReceivePort(Integer.parseInt(port)); |
| | | } |
| | | port = EmailConfigUtils.getMailConfig("mail.smtp.port." + emailSuffix); |
| | | if (StringUtils.isNotBlank(port)) { |
| | | t482102.setSmtpPort(Integer.parseInt(port)); |
| | | } |
| | | } catch (Exception e) { |
| | | return t482102; |
| | | } |
| | | return t482102; |
| | | } |
| | | } |