public static void receberEmailImap() throws Exception { ArrayList<Item> results = null; EmailMessage email = null; ClienteEmailCentralServicoDao clienteEmailCentralServicoDao = new ClienteEmailCentralServicoDao(); results = clienteEmailCentralServicoDao.getMails(); System.out.println("IMAP... LENDO EMAILS"); System.out.println(); try { for (Item item : results) { ItemId itemId = item.getId(); email = EmailMessage.bind(item.getService(), itemId); String texto = email.getBody().toString(); Source source = new Source(email.getBody().toString()); String textoFormatado = source.getTextExtractor().toString(); System.out.println("Mensagem : \n" + texto + " \nFIM da Mensagem ------------"); DateFormat dateFormat = DateFormat.getTimeInstance(); Locale br = new Locale("pt", "BR"); SimpleDateFormat formatarHora = new SimpleDateFormat("hh:mm", br); String solicitacao = email.getSubject(); String corpoEmail = email.getBody().toString(); // boolean encontrar = solicitacao.matches(".*Solicitação.*"); if (encontrar) { encontrar = solicitacao.matches(".*[0-9].*"); if (encontrar) { solicitacao = solicitacao.replaceAll("[^0-9]", ""); SolicitacaoServicoService solicitacaoServicoService = (SolicitacaoServicoService) ServiceLocator.getInstance().getService(SolicitacaoServicoService.class, null); SolicitacaoServicoDTO solicitacaoDto = new SolicitacaoServicoDTO(); solicitacaoDto.setIdSolicitacaoServico(Integer.parseInt(solicitacao)); boolean existeSolicitacao = solicitacaoServicoService.existeSolicitacaoServico(solicitacaoDto); if (existeSolicitacao) { OcorrenciaSolicitacaoDTO ocorrenciaDto = new OcorrenciaSolicitacaoDTO(); OcorrenciaSolicitacaoService ocorrenciaService = (OcorrenciaSolicitacaoService) ServiceLocator.getInstance() .getService(OcorrenciaSolicitacaoService.class, null); ocorrenciaDto.setIdSolicitacaoServico(Integer.parseInt(solicitacao)); Calendar calendar = Calendar.getInstance(); int hora = calendar.get(Calendar.HOUR_OF_DAY); int minuto = calendar.get(Calendar.MINUTE); ocorrenciaDto.setDataregistro(UtilDatas.getSqlDate(new java.util.Date())); ocorrenciaDto.setHoraregistro(hora + ":" + minuto); ocorrenciaDto.setRegistradopor("Email - Automatico"); ocorrenciaDto.setDescricao(email.getSubject()); ocorrenciaDto.setOcorrencia(texto); ocorrenciaService.create(ocorrenciaDto); } } } email.setIsRead(true); email.update(ConflictResolutionMode.AlwaysOverwrite); } } catch (EWSHttpException ex) { System.out.println("Teste"); } System.out.println("LEITURA CONCLUIDA"); System.out.println(); try { } catch (Exception e) { e.printStackTrace(); } }
public static void receberEmailPop() { try { System.out.println(); System.out.println("LENDO EMAILS POP..."); // Verifica qual tipo de provider, se é imap , ou pop/pop3 ClienteEmailCentralServicoDao clienteEmail = new ClienteEmailCentralServicoDao(); Message mensagens[] = clienteEmail.getEmail2s(); MimeMultipart mmp = new MimeMultipart(); MimeBodyPart mbp1 = new MimeBodyPart(); MimeBodyPart mbp2 = new MimeBodyPart(); int contador = 0; for (Message message : mensagens) { if (!message.isSet(Flags.Flag.SEEN)) { String solicitacao = message.getSubject(); boolean encontrar = solicitacao.matches(".*Solicitação.*"); /** * Verifica se no título do email existe a palavra Solicitação e o número, caso exista, * ele vai vincular o email a solicitacao do titulo, */ if (encontrar) { encontrar = solicitacao.matches(".*[0-9].*"); /** * Verifica se no título do email possui valor numérico, se possuir, prossegue, senão, * encerra */ if (encontrar) { /** * Retira tudo o que não for numérico, pega os numeros e usa como id da solicitacao de * servico */ solicitacao = solicitacao.replaceAll("[^0-9]", ""); mmp = (MimeMultipart) message.getContent(); mbp1 = (MimeBodyPart) mmp.getBodyPart(0); mbp2 = (MimeBodyPart) mmp.getBodyPart(1); System.out.println( "-----------------------------------------------------------------------"); System.out.println("CONTEÚDO DO EMAIL :" + mbp1.getContent()); System.out.println("TITULO DO EMAIL : " + message.getSubject()); System.out.println( "-----------------------------------------------------------------------"); System.out.println("Contador : " + contador); contador++; System.out.println(); System.out.println(); System.out.println(); String minutoFormatado = ""; OcorrenciaSolicitacaoDTO ocorrenciaDto = new OcorrenciaSolicitacaoDTO(); OcorrenciaSolicitacaoService ocorrenciaService = (OcorrenciaSolicitacaoService) ServiceLocator.getInstance() .getService(OcorrenciaSolicitacaoService.class, null); ocorrenciaDto.setIdSolicitacaoServico(Integer.parseInt(solicitacao)); Calendar calendar = Calendar.getInstance(); int hora = calendar.get(Calendar.HOUR_OF_DAY); int minuto = calendar.get(Calendar.MINUTE); ocorrenciaDto.setDataregistro(UtilDatas.getSqlDate(new java.util.Date())); if (minuto < 10) { minutoFormatado = "0" + String.valueOf(minuto); ocorrenciaDto.setHoraregistro(hora + ":" + minuto); } else { ocorrenciaDto.setHoraregistro(hora + ":" + minuto); } ocorrenciaDto.setRegistradopor("Email - Automatico"); ocorrenciaDto.setDescricao(message.getSubject().toString()); ocorrenciaDto.setOcorrencia(mbp1.getContent().toString()); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); java.sql.Date dataFormatada = UtilDatas.getSqlDate(message.getReceivedDate()); ocorrenciaDto.setDataregistro(UtilDatas.getSqlDate(new java.util.Date())); String data = UtilDatas.formatHoraFormatadaHHMMSSStr(message.getReceivedDate()); ocorrenciaService.create(ocorrenciaDto); } } } } System.out.println("THREAD FINALIZADA!!!---------------------"); } catch (Exception e) { System.out.println("###########################################"); System.out.println("Erro ao executar a Thread"); System.out.println("###########################################"); e.printStackTrace(); } }