Muitas empresas estão usando os servidores de e-mail externo como o G-mail para uso de correios eletrônicos ao invés de montarem servidores para esta finalidade, isto reduz o custo de T.I.
Ocorre que ao realizar esta mudança, pode acontecer que o sistema que enviava e-mail normalmente com o servidor SMTP local possa não mais funcionar, a razão é que o gmail exige conexão autenticada segura (preferencialmente via protocolo TLS) .
Este foi o caso em que uma aplicação de um cliente mandava e-mail usando os pacote PL/SQL de envio de e-mail, e depois de usarem o g-mail a aplicação - mais especificamente o Oracle - não consegui mais enviar e-mail.
Para criar uma conexão segura é preciso esta usando no mínimo o Oracle na versão 11.2.0.2 e além disso não esta disponível na versão XE. Sendo preciso criar um Oracle Wallet, como discorrido em http://arkatec.wordpress.com/2011/08/15/sending-email-using-oracle-database-and-google-mail-service/ .
Supondo que a versão do Oracle seja inferior ou que a edição seja Express Edition, neste caso ainda podemos enviar e-mail pelo g-mail, mas usando o emailrelay, e é isto que quero mostrar neste artigo, para referência que possa ajudar que passar pelo mesmo problema, além disso servir como documentação para mim, caso preciso fazer isso em mais servidores. O cenário aqui apresentado é um servidor Windows Server 2008.
1 - Baixe o programa emailrelay e mande instalar o mesmo
1.1 - Na primeira Janela vem com as informações do programa, click em Next>
1.2 - Depois a licença, marque a opção de aceitar a licença e click em Next>
1.3 - A próxima janela mostra o diretório onde será instalado além do Spool e configuração. Aceite o padrão e click em Next>
1.4 - Em Tipo de Instalação marque o SMTP Server e depois escolha a opção "Check periodically" e
1.5 - Na próxima janela configure com a informação do seu G-mail. Em HostName digite smtp.gmail.com e na Port 587 e na parte "Account" coloque a informação do seu e-mail com Login no editor Name e a Senha no editor PassWord; Click em Next>
1.6 - Nas demais janelas aceite as opções padrões e click em Next> para terminar a instalação.
2 - Depois de instalado será preciso alterar o arquivo de configuração para o G-mail, o arquivo é o
emailrelay-star.bat e ele vai estar no caminho de instalação (passo 1.3), mas normalmente esta em c:\arquivos de programa\emailrelay;
2.1 Altere o arquivo como no exemplo abaixo;
"C:\Arquivos de programas\emailrelay\emailrelay.exe" --as-proxy smtp.gmail.com:587 --client-tls --client-auth "C:\Arquivos de programas\emailrelay\emailrelay.auth" --log --pid-file "C:\Arquivos de programas\emailrelay\emailrelay.pid" --poll 60 --remote-clients --spool-dir C:\Windows\spool\emailrelay --syslog --verbose
2.2 Abre o arquivo emailrelay.auth e confirme que o Login e a Senha estão corretos.
3 - Pelo CMD vá no diretório de instalação do E-mail relay e digite emailrelay-service.exe -install para criar o serviço no Windows.
3.1 Depois entre no serviço do Windows (Iniciar -> Executar -> Services.msc) e inicie o serviço caso ainda não esta inicializado.
Agora vamos no Oracle realizar alguns ajustes.
1 - Com usuário SYS altere o parâmetro SMTP_OUT_SERVER
SQL>ALTER SYSTEM SET SMTP_OUT_SERVER='localhost' SCOPE=SPFILE;
2-Então Reinicie a instância Oracle.
3- Então pode usar diretamente o UTL_MAIL ou o UTL_SMPT;
3.1 Usando o UTL_MAIL, instale o pacote caso não exista;
SQL> @?/rdbms\admin\utlmail.sql;
SQL> @?/rdbms\admin\prvtmail.plb
E chame o pacote de enviar e-mail como no exemplo abaixo:
UTL_MAIL.send(sender => 'My Name "<ale.lucio.cordeiro@gmail.com>"',
recipients => 'destino@gmail.com',
subject => 'Teste',
message => 'Bom trabalho!');
3.2 Caso esteja usando o pacote UTL_SMPT, basta informar localhost na conexão e retirar a parte de autenticação
Parte
que precisa ser retirado
utl_smtp.command(mail_conn, 'AUTH
LOGIN');
utl_smtp.command(mail_conn,
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(v_usuario))));
utl_smtp.command(mail_conn,
utl_raw.cast_to_varchar2(utl_encode.base64_encode(utl_raw.cast_to_raw(p_senha))));
OBS;
Caso ocorra o erro SMTP
permanent error: 553 verifique se você respeitou o uso das aspas simples e dupla além dos <> entre o endereço de e-mail, coloque como no exemplo supracitado.
Pronto, o Oracle já consegue enviar e-mail pelo G-mail;
Espero ter ajudado.