projetos | download | linux | privacidade | contato
 
  Produtos | Documentação | Suporte | Treinamento | Conectiva | Cases | Soluções | Parcerias | Imprensa | Oportunidades
Pesquise 
português 
english 
español

SUPORTE

->Suporte Estendido
->Centros de Serviços
->Técnicos Certificados
->Formulário de Suporte
->Abrangência do Suporte
->Acionando o Suporte
->Perguntas e Respostas
->Atualizações
->Livros, Guias e Manuais
->Hardware

    15.9. Como baixar contas de mail da internet para uma pequena rede utilizando acesso discado e utilizar um servidor de mails internos?

    Como funciona o processo

    Nesse documento consideramos que a rede interna, o DNS e o acesso por demanda do servidor estão funcionando corretamente, não cabe nesse documento discutir estas configurações, e que elas precisam estar funcionando.

    Imaginemos uma rede com um servidor Linux, e estações (que podem ser com Linux, windows, etc...) que fazem acesso a internet por meio do servidor Linux.

    Cada usuário pode mandar e receber mails para a internet usando sua própria conta interna. No papel de servidor de email da intranet temos o Sendmail configurado, que gerenciará estas mensagens. Quanto a conexão com internet estiver ativa, ele descarregará a fila de mails para internet.

    Agora, queremos pegar os mails da internet e distribuir para cada usuário de nossa rede interna, quem fará este trabalho será o fetchmail.

    Até agora tudo tranqüilo, mas temos um e_mail na empresa chamado vendas@empresa.com.br e que temos três vendedores que atendem esse mail. Após um contato preliminar com o cliente, o mesmo começara a enviar os e-mails com o subject algo como: a/c vendedor1

    Como filtrar estes mails?

    Uma saída simples, podemos conjugar o fetchmail com o Procmail que é um filtro, e desta forma ele procurará os subjects que tratam para o vendedor1 para enviar para ele, separando das demais.

    No final, teremos uma conta que receberá todos os mail de vendas@empresa.com.br que não foram filtrados, e desta forma alguém terá que recebê-los para verificar qual destino devem seguir.

    Certo, agora vamos configurar estes serviços para que realizem o que falamos acima:

    Instalando os pacotes necessários

    Programas necessários:

    - Sendmail (Servidor de mails) - Fetchmail (para pegar e-mails da internet) - Procmail (Para fazer filtros de mensagens)

    Estes programas encontram-se na distribuição da Conectiva Linux, e desta forma basta instalar os pacotes:

    [root@localhost]# mount /mnt/cdrom

    [root@localhost]# cd /mnt/cdrom/conectiva/RPMS

    [root@localhost]# rpm -ivh sendmail* procmail* fetchmail*

    Configurando o Sendmail

    Primeiro, vamos configurar o Sendmail, o mesmo pode ser configurado de várias formas, como m4, linuxconf, etc. Neste documento, iremos configurar utilizando o linuxconf:

    Abra o linuxconf

    [root@localhost]# linuxconf

    Entre na parte:

        ---->Ambiente de Rede
        ------> Sendmail - sistema de envio de e-mails
    

    Nas opções de básico, entre na opção:

        --------> Informações básicas
    

    E deixe configurado da seguinte forma:

        #--------------------------------------------------------------------------
        #Apresentar seu sistema como  : [seu servidor]
        #                       [X]Aceitar email para [domínio]
        #Servidor de email            :[nome_do_servidor_local]
        #Roteador de email            :
        #Protocolo roteador de email  : smtp
        #-------------------funcionalidades-----------------------------------------
        #                             [ ] confirmar nomes completos
        #                                  de usuários
        #                             [X] Ativar controle de envio
        #                                 (spammers)
        #Tamanho máximo das mensagens:( )no limite ____________
        #                             [*] Não tentar enviar
        #                                 imediatamente
        #Processar consulta a cada(min):( ) manual 1
        #                             ( ) Usar a shell especial smrsh
        #Maximum recipients per msg   (o) Defaults _____________
        -----------------------------------------------------------------------------
    

    Confirme, e entre agora no menu:

        Opção --->Regras de mascaramento
              -------> Adicionar
    
        #---------------------------------------------------------------------------
        #                     [*] esta regra está ativa
        #De: Original              :[email_interno]
        #De: Novo                  :[email_externo]
        #Comentário                :
        #---------------------------------------------------------------------------
    

    Desta forma, será garantido que seus email sairão com um endereço para reply válido, que será sua conta no provedor.

    Crie uma regra para cada usuário que envie mails para a internet.

    Confirme e peça para gerar o arquivo de sendmail.cf

    Saia do linuxconf, agora vamos configurar quais máquinas poderão enviar e_mail pelo seu servidor, e evitar que outros utilizem seu servidor durante a conexão:

    Edite o arquivo /etc/sendmail.cw para que o sendmail funcione com a sua rede interna:

    [root@localhost]# mcedit /etc/sendmail.cw

        # sendmail.cw - include all aliases for your machine here.
        suaempresa.com.br       RELAY ---> Seu Domain Name aqui.
        200.200.221             RELAY ---> O IP da sua rede interna aqui
        localhost.localhost     RELAY
    

    - Se o sendmail.cw não for configurado, você vai receber uma mensagem de RELAY DENIED. Configurado o sendmail.cw o segundo passo seria criar o arquivo relay-domains.

    Coloque o domain name da sua empresa, e o IP da sua rede interna:

    [root@localhost]# mcedit /etc/relay-domains

        192.168.0       RELAY -->seu ip interno de rede
        domain.com.br   RELAY -- nome de seu servidor
    

    OBS: Os espaços entre o ip e a palavra Relay são TABs, caso contrário, seu arquivo não funcionará.

    Salve, e edite o inetd.conf para habilitar as funções de correio:

    [root@localhost]# cd /etc [root@localhost]# mcedit inetd.conf

    Descomente a linha:

        pop-3   stream  tcp     nowait  root    /usr/sbin/tcpd ipop3d
    

    Salve o arquivo e saia, reinicie o inetd:

    [root@localhost]# cds [root@localhost]# ./inet restart

    E inicie o sendmail

    [root@localhost]# ./sendmail start

    Pronto, nosso servidor de email já está operacional, agora crie os usuários internos que terão conta de email, uma maneira simples é com o comando adduser, proceda da seguinte forma:

    [root@localhost]# adduser [usuario]

    grave uma senha para o usuário:

    [root@localhost]# passwd [usuario]

    Verifique se seu servidor está operacional, configurando o leitor de email da estação, colocando as informações do usuário, e a parte de servidores pop3 e smtp da seguinte forma:

        servidor pop3 = [nome_do_servidor_interno]
        servidor smtp = [nome_do_servidor_interno]
        usuario: [nome_do_usuário_vc_criou]
    

    Mande uma mensagem para seu próprio usuário local , e verifique que o sr. está recebendo.

    Configurando o Fetchmail

    Agora, vamos pegar os e-mails da internet, para isso utilizamos o fetchmail:

    O primeiro passo é criar um arquivo .fetchmailrc no home do usuário que fará este serviço.

    A estrutura do arquivo é algo parecido com o exemplo abaixo:

        #----início do arquivo .fetchmailrc --------------------------
        set logfile "/var/log/fetchmaillog"
        set postmaster ""
        set daemon 123
        set bouncemail
        poll [provedor_internet] proto POP3 
           user [usuário] password "[senha]" is [usuário_local] here
        
        #--- fim do arquivo -------------------------------------------
    

    A opção set daemon é a que será utilizada para os intervalos de checagem dos emails, o valor é em segundos.

    A opção set logfile é para criar um arquivo de log que será muito útil.

    A linha que inicia com o pool é para baixar os emails de seu provedor no lugar da expressão [provedor_internet] coloque o endereço do servidor pop de seu provedor em [usuário] e [senha] coloque a conta com a senha da conta a internete na expressão [usuário_local] coloque quem é o usuário de seu servidor.

    Crie quantas forem necessárias.

    Agora, é necessário rodar o fetchmail para que ele baixe as mensagens de seu provedor e envie para seu servidor local para que seus usuários possam pegar as mensagens.

    Uma maneira simples é agendar no crontab do usuário que executa o fetchmail, e informa de quanto em quanto tempo o fetchmail será rodado. (para isso tire a opção set daemon de sua configuração.

    Outra forma, é colocar o fetchmail direto para acesso, colocando-o como daemon, para isso execute no prompt:

    [root@localhost]# fetchmail

    A segunda parte chama o procmail, que é filtro, para o caso de duas pessoas internas utilizarem o mesmo mail externo, como no caso de três vendedores utilizarem o mail externo vendas@empresa.com.br, assim é pedido para quem quiser enviar um mail para um dos vendedores coloque no subject por exemplo:

    Para o vendedor1.

    Assim precisamos criar um arquivo procmailrc no home do usuário que chama o fetchmail.

    Configurando o Procmail

    O arquivo de configuração é algo parecido com:

        -----------Ínicio do arquivo .procmail -------------
        PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin
        INBOX=/home/[usuário]/mail/INBOX
        MAILDIR=/home/[usuário]/mail
        DEFAULT=$MAILDIR/INBOX
        LOGFILE=var/log/procmaillog
        
        
        :0
                * ^Subject:.*vendedor1*
                ! vendedor1@servidor.intranet
        
        :0      * ^Subject:.*vendedor2*
                ! vendedor2@servidor.intranet
        
        # Este exemplo copia que contenham no Subject a palavra 
        # vendedor1 ou 2 , e fará um bounce (repassará) para o 
        # mail interno de cada vendedor.
        
        :0
        
                * ^To:.vendas@empresa.com.br
                ! geral@servidor.intranet
        
        # Esta última regra é no caso de alguma mensagem não ser
        # pega pelos filtros acima seja mandada para uma conta denominada geral@.
        # É necessário que alguém verifique esta conta, para dar destina a estas
        # mensagens.
        
        #no final do arquivo coloque estas linhas:
        
        :0
        $INBOX
    

    Pronto, agora temos uma solução de servidor de email interno funcionando, bastará configurar no seu script por discagem por demanda chamar o comando:

    sendmail -q

    Para que a cada conexão, sua fila de emails a serem enviados seja despachada.

    Agora basta que seus usuários baixem as contas recebidas que estão no spool do seu servidor local. E para mandarem, bastará digitar a mensagem, e mandá-las para o servidor local, que este ao receber o comando sendmail -q irá despachar os mesmo para a internet.

    Tudo o que está sendo executado e transmitido pelo sendmail pode ser verificado no arquivo de log maillog, que geralmente fica em :

    /var/log/mailog

    Do fetchmail o log é gravado em:

    /var/log/fetchmailog

    e do Procmail em:

    /var/log/procmaillog

    Verifique estes arquivos para ter certeza que tudo funciona de acordo, ou no caso de problemas, para verificar o que está errado.