É um aplicativo separado que irá rodar independente de Tomcat. Ele pode ser iniciado manualmente por linha de comando ou instalado como serviço (Windows/Linux).
Essa rotina olha de tempos em tempos (parâmetro configurado no arquivo .ini) a tabela TB_MENSAGENS_ENVIADAS e TB_MENSAGENS_ENVIADAS_DEST. Pegando sempre 100 destinatários por vez. Com isso, todas as rotinas (ICoruja, agendador, controles de licença, log´s de erro, …) passam a gravar nestas tabelas. Só irá mandar email´s que foram registrados nas tabelas acima. Não há mais necessidade de limpeza de cache ou reiniciar Tomcat. O serviço pode ser retirado do ar sem parar o sistema.
Foi criado um conceito de prioridade no envio de email (campo MEV_PRIORIDADE). Hoje todas as rotinas gravam o código 9999999. Apenas a rotina “Não tem ou esqueceu sua senha” grava o código 10, portanto os email´s desta rotina tem prioridade. Quanto menor o valor do campo MEV_PRIORIDADE, mais cedo o email será enviado.
Em caso de falha no envio para um destinatário, será feito mais 9 tentativas. Sendo que cada nova tentativa será feita após uma hora.
Em virtude de um tratamento na rotina para não enviar email´s em duplicidade, a rotina pode ser instalado em mais de um servidor.
Arquivos necessários:
Os arquivos devem ser copiados para a maquina com o tomcat. Exemplo:
1° PASSO - Configurando conta de e-mail(arquivo de configuração):
mail.smtp.host=smtp.gmail.com mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory mail.smtp.auth=true mail.smtp.port=587 mail.smtp.starttls.enable=true mail.transport.protocol=smtp
[smtp_autentication]:
[email protected] password=suasenhaaqui
[geral_properties], propriedades gerais:
E-mail de resposta que será utilizado como padrão quando não haver remetente.
Nome do remetente padrão quando não haver remetente.
Quando “S”, irá enviar e-mail com remetente conforme a conta configurada no parâmetro sender.email.
Tempo que a rotina leva para checar se existe novo e-mail a ser enviado. Em minutos. A cada check são recuperados e enviados 100 e-mail.
Configurando database(arquivo de configuração):
[database_properties]: driver=oracle.jdbc.OracleDriver <- (Nome do driver) url=jdbc:oracle:thin://@LIBRA:1521:ORACLE11G <- (url de conexão) user=seu_usuario password=sua_senha
Imagem geral de como deve estar o arquivo de configuração:
2° PASSO - Iniciando serviço (via linha de comando):
No prompt de comando. Acessar a pasta onde está localizado o jar.
java -jar [nome_do_jar].jar
-h - Help do serviço, lista todos comandos.
-opcao
testa configuração da conta de e-mail enviado um e-mail da conta configurada no .ini para o e-mail informado no parametro -email.
send
inicia serviço de envia de e-mail.
utilizado para o teste de e-mail. Deve ser informado o endereço de e-mail que se deseja receber a menssagem de teste.
-arquivo
possibilita informar um arquivo de configuração. Se não for informado vai procurar pelo padrão, que deve estar na mesma pasta do jar, com nome Servico_EnvioEmail.ini.
-enviaNoDominioEdusoft
parâmetro exclusivo para uso da Edusoft. Por padrão ele tem o valor N, com esse valor não envia e-mail dentro da Edusoft. Para enviar e-mail internamente na Edusfot o valor deve ser S.
Comportamentos do serviço de envio de e-mail:
Todo e-mail que tenha mais de um destinatário, será enviado um e-mail para o remetente da mensagem, com o conteúdo da mensagem original. Para os destinatários, será enviado uma cópia oculta para cada um com o conteúdo da mensagem original.
Criação de Serviço a partir de arquivo executável .JAR (32bits e 64Bits) - Windows
Descompacte o arquivo “Serviço windows.rar” dentro da pasta onde se encontra o jar “Servico_EnvioEmail.jar”, que deve estar na pasta C:\edusoft\servicos\envio_email. Ao ser descompactado sua pasta deve ficar com os seguintes arquivos conforme mostra a imagem1.
Imagem1 – arquivos descompactados
Após ser descompactado Copie o arquivo prunsrv.exe para a pasta c:\windows\system32 de acordo com a arquitetura do sistema operacional, se for 64bits copie da pasta C:\edusoft\servicos\envio_email_\amd64\prunsrv.exe
Se você chegou até aqui e seguiu todos passos conforme descrito no manual o arquivo Install.bat já deve estar correto. Mas para garantir vamos editar o mesmo e conferir se todos caminhos estão corretos. Verificar caminhos destacados na imagem2 que se encontra abaixo.
Após salvar o arquivo, execute o mesmo com privilégios de administrador.
Execute com privilégio de administrador o arquivo “Iniciar serviço.bat” que foi descompactado na pasta.
Para excluir ou parar o serviço devem ser utilizados os arquivos descompactados na pasta, “Uninstall.bat” e “Parar serviço.bat”.
Verifique na lista de serviços do windows ( services.msc ) para certificar que o serviço foi criado e iniciado no windows.
Criação de Serviço a partir de arquivo executável .JAR (32bits e 64Bits) – Linux
Copiar o arquivo “ServicoEnvioEmail_Linux.rar” para a pasta onde encontrar-se o jar de serviço de e-mail (Padrão: /edusoft/servicos/envio_email).
1 – Descompactar os arquivos de modo que fiquem ma raiz junto ao jar do serviço e dar permissão de execução. 2 – Caso o jar não esteja na pasta padrão (/edusoft/servicos/envio_email), é necessário editar os arquivos “EdusoftEnvioDeEmail” e “start_Servico_EnvioEmail.sh” e ajustar o caminho da pasta.
3 – Copiar o arquivo “EdusoftEnvioDeEmail” para a pasta de inicialização do linux (Padrão Debian/Ubuntu: /etc/init.d) e dar permissão de execução.
4 – Acessar a pasta de inicialização do linux (/etc/init.d) e rodar o comando “update-rc.d EdusoftEnvioDeEmail defaults”.
Após seguir o procedimento para iniciar ou parar o serviço basta usar o camando padrão do sistema “/etc/init.d/EdusoftEnvioDeEmail start” ou “/etc/init.d/EdusoftEnvioDeEmail stop”. Em caso de reinicialização do servidor o serviço será inicializado automaticamente.
Para remover o serviço basta executar o comando “update-rc.d EdusoftEnvioDeEmail remove” e excluir o arquivo EdusoftEnvioDeEmail da pasta de inicialização do sistema (/etc/init.d).
Problemas conhecidos 1) Erro original: javax.mail.MessagingException: Could not convert socket to TLS;nested exception is: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target.
Retirar o scaneamento ssl ou retirar o scaneamento de envio de email smtp do seu antivirus.
2) Verifique a quantidade de e-mail que seu provedor possibilita enviar por dia. Se a quantidade enviada for igual a máxima permitida pelo seu provedor, os e-mail seguintes serão barrados e consequentemente não enviados.
3) Verifique o tamanho máximo de anexo que seu provedor permite enviar. Caso um e-mail tenha um anexo maior que o permitido pelo seu provedor, o mesmo será barrado e consequentemente não enviado.
4) Não envia email pelo gmail. Verificar se você ativou o envio de email através de aplicativos menos seguros:
https://support.google.com/mail/answer/13287?hl=en
https://www.google.com/settings/security/lesssecureapps
https://myaccount.google.com/security?utm_source=OGB&pli=1#connectedapps → Permitir aplicativos menos seguros
5) Caso não esteja mandando e-mail, você pode configurar o serviço para executar em modo de debug (arquivo de configuração .ini). Com esse modo ativado, você terá informações mais detalhadas que podem facilitar encontrar o problema. Este modo deve ser mudado para WARN depois de o serviço estiver funcionando.
6) No Gmail. Mesmo realizando todos passos acima, continua a não enviar e-mail.
Primeiro passo: Verifique na sua caixa de entrada, do e-mail configurado no .ini, se você não recebeu nenhum e-mail ou notificação do google com os temas “Alguém tem sua senha” ou “Tentativa de login bloqueada”. Se sim, deve aparecer um link com o label “REVISAR SEUS DISPOSITOS AGORA” ou algo semelhante, todos vão te levar para a mesma tela. Clique nesse botão ou link e libere o acesso para todos dispositivos.
Segundo passo: Ainda logado no Gmail e no mesmo navegador, acesse o link https://accounts.google.com/DisplayUnlockCaptcha, clique em continuar, ou se solicitar faça login com seus dados do Gmail.
Terceiro passo: Tente novamente enviar um e-mail de testes. Se tudo deu certo o e-mail deve ser enviado com sucesso.
7) O arquivo de configuração, “.ini”. sempre deve estar com codificação em “ANSI”. Caso não esteja vai gerar execução e o serviço não subirá.