Mostrar mensagens com a etiqueta E-mail. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta E-mail. Mostrar todas as mensagens

sexta-feira, 31 de outubro de 2014

Teste de envio e recebimento via Telnet

Fonte:http://wiki.locaweb.com.br/pt-br/Teste_de_envio_e_recebimento_via_Telnet

 

Envio via Telnet

TELNET é um protocolo cliente-servidor de comunicações usado para permitir a comunicação entre computadores ligados numa rede (exemplos: rede local / LAN, Internet), baseado em TCP. Para testar o envio de mensagens por parte do servidor é possível utilizar o comandoTELNET.


Envio para um servidor MX via
 SMTP sem autenticação:


clip_image002 Clique em "Iniciar" (Start) >> "Executar"(Run) >> Digite "CMD" ou "Command" >> Clique em "OK".

clip_image002[1] No prompt digite: telnet <servidor-email de destino> 25 /Enter

clip_image002[2] Digite: helo locaweb.com.br (ou seu domínio que está enviando a mensagem) /Enter

clip_image002[3] Em seguida: mail from: <locaweb@seudominio> /Enter

clip_image002[4] Depois: rcpt to: <locaweb@dominiodestinatario> /Enter

clip_image002[5] Digite: data /Enter

clip_image002[6] Crie o cabeçalho da mensagem, preencha; from: locaweb@seudominio /Enter; to: locaweb@dominiodestinatario /Enter ; subject: Titulo da mensagem /Enter

clip_image002[7] Escreva o conteúdo de sua mensagem mensagem, após terminar o corpo da mensagem temos que colocar um "." em uma linha vazia e dar um <enter>

clip_image002[8] O servidor de e-mail irá dizer que a mensagem ficou na fila para entrega (Queued mail for delivery) ou que a mensagem obteve sua entrega realizada com sucesso.

clip_image002[9] Depois é só digitar um "quit" (sem as aspas) para fecharmos o teste de e-mail.


clip_image003


IMPORTANTE: Com este tutorial explicamos como enviar um e-mail usando o
 Telnet e alguns comandos do SMTP. Nota: este é o procedimento para o envio de e-mail, caso aconteça algo nao esperado, pode ser devido a restrições do servidor de destino, qualquer erro que aparecer devemos investigá-lo para corrigir o fluxo de e-mails.

 

Envio de mensagem via Telnet autenticado

Antes de realizar a conexão via Telnet, acesse a seguinte URL:

http://www.opinionatedgeek.com/dotnet/tools/Base64Encode/default.aspx


Digite o login no campo de texto, em seguida clique no botão "Encode" (NÃO use a tecla "Enter" com o cursor no campo de texto!)

Copie o resultado, que é o login codificado:

ipsentry@www191.locaweb.com.br RESULTA EM: aXBzZW50cnlAd3d3MTkxLmxvY2F3ZWIuY29tLmJy

Faça o mesmo com a senha e copie o resultado:

senhaxxxx RESULTA EM: c2VuaGF4eHg=

Na posse dos dados acima, realize a conexão Telnet:

clip_image002[10] Clique em "Iniciar" (Start) >> "Executar"(Run) >> Digite "CMD" ou "Command" >> Clique em "OK".

clip_image002[11] No prompt digite: telnet <servidor-email de destino> 25 /Enter

Digite "auth login" (sem aspas). A resposta será:

334 VXNlcm5hbWU6

Cole o login codificado e aperte /Enter. A resposta será:

334 UGFzc3dvcmQ6

Cole a senha codificada e aperte /Enter. Se o login e senha estiverem corretos, a resposta será:

235 ok, go ahead (#2.0.0)

clip_image002[12] Digite: helo locaweb.com.br (ou seu domínio que está enviando a mensagem) /Enter ; Pode ser utilizado também: helo locaweb.com.br (ou seu domínio que está enviando a mensagem) /Enter ;

clip_image002[13] Digite: data /Enter

clip_image002[14] Crie o cabeçalho da mensagem. Preencha:

from: locaweb@seudominio /Enter

to: locaweb@dominiodestinatario /Enter

Return-Path:<mail remetente> /Enter

subject: Titulo da mensagem /Enter

clip_image002[15] Escreva o conteúdo de sua mensagem mensagem, após terminar o corpo da mensagem temos que colocar um "." em uma linha vazia e dar um <enter>

clip_image002[16] O servidor de e-mail irá dizer que a mensagem ficou na fila para entrega (Queued mail for delivery) ou que a mensagem obteve sua entrega realizada com sucesso.

clip_image002[17] Depois é só digitar um "quit" (sem as aspas) para fecharmos o teste de e-mail.

 

Recebimento via POP

Utilizando o comando Telnet tambem é possivel listar todas as mensagens que determinda caixa postal possui em seu webmail, realizando os passos a seguir:


clip_image002[18] telnet pop.dominio.com.br 110

clip_image002[19] USER usuario@dominio.com.br

clip_image002[20] PASS senhadousuario

clip_image002[21] list

clip_image002[22] quit


Obs.: Referencias de comandos POP,
 http://www.tcpipguide.com/free/t_POP3TransactionStateMailandInformationExchangeProc.htm

 

Recebimento via IMAP

Com o comando Telnet é possivel testar o funcionamento da caixa postal para com o protocolo IMAP, listando todas as pastas criadas no webmail.


clip_image002[23] telnet pop.dominio.com.br 143

clip_image002[24] zzz login usuario@dominio.com.br senhadousuario

clip_image002[25] aaa list "" "*"

clip_image002[26] zzz select "INBOX"

clip_image002[27] zzz logout


Obs.: No teste de imap, para enviar comandos ao servidor necessário usar 3 caracteres e depois um comando, nesse caso utilizei zzz ou aaa porque tanto faz.

Referencias de comandos IMAP: http://www.tcpipguide.com/free/t_IMAP4AuthenticatedStateMailboxManipulationSelectio.htm

 

quinta-feira, 4 de fevereiro de 2010

Zimbra no Debian 5

Por: Rodrigo Rezende

Fonte: http://www.vivaolinux.com.br/artigo/Zimbra-no-Debian-5/

Zimbra no Debian 5

Zimbra é um pacote colaborativo de servidor de e-mail + antispam + Local Instant Messenger + controle de documento + web server. Um all-in-one bem amigável e bastante funcional como solução de servidor de e-mail. 

Infelizmente nem tudo são flores, então a facilidade de ser apenas um pacote com todas as funcionalidade se torna um empecilho nas atualizações, que ficam condicionadas a liberação do novo pacote em sua versão gratuita. A versão paga tem mais suporte e permite o uso de plug-ins mais eficientes, mas nada que o fórum de discussão não possa ajudar a atualizar a versão gratuita. 

Quem quiser fazer uma live demonstration pode acessar o website do Zimbra para testar. 

Abaixo como fazer a instalação no Debian 5. Atualmente o Zimbra fornece pacotes apenas para o Debian 4, mas é perfeitamente portável com algumas alterações na verificação. 

Considerando que tenha uma instalação limpa do Debian, é hora de instalar as dependências do Zimbra: 

# apt-get update
# apt-get upgrade
# apt-get install ssh openssl libltdl3 libgmp3c2 fetchmail sudo libexpat1 perl=5.8.8-7etch6 libxml2
 

Essas são as dependências checadas na instalação do Zimbra, é preciso também retirar todos o MTAs instalados no Debian, por padrão ele já vem com exim. 

# /etc/init.d/exim4 stop
# apt-get remove exim4
# mv /etc/init.d/exim4 /etc/init.d/exim4.old
 

O próximo passo é descompactar o pacote do Zimbra, ele pode ser baixado daqui. 

# tar -xvzf zcs-5.0.18_GA_3011.DEBIAN4.0.20090707170635.tgz 

Depois de descompactado devemos "enganar" o script de instalação para que ele reconheça o Debian 5 como um Debian 4 e aceite o novo pacote atualizado libgmp3. Para isso ele lê o /etc/debian_version e compara com a destinada à instalação. Para enganar faça: 

# cd zcs-5.0.18_GA_3011.DEBIAN4.0.20090707170635/bin
# vi get_plat_tag.sh
 

Procure a linha que contém: 

grep "4.0" /etc/debian_version > /dev/null 2>&1 

e substitua o 4.0 pelo valor que está no /etc/debian_version. Por exemplo, para o Debian 5.0.2 a nova linha seria: 

grep "5.0.2" /etc/debian_version > /dev/null 2>&1 .

O mesmo engodo deve ser feito para o pacote libgmp3, que agora é referenciado pelo Debian como libgmp3c2: 

# cd zcs-5.0.18_GA_3011.DEBIAN4.0.20090707170635/util
# vi utilfunc.sh
 

Procure por todas as ocorrências libgmp3 e as substitua por libgmp3c2. 

Verifique se o host local está incluído no /etc/hosts, se não tiver inclua. 

Agora basta rodar o script de instalação e seguir as instruções de configuração e alterar a senha de admin que é pedida: 

# cd zcs-5.0.18_GA_3011.DEBIAN4.0.20090707170635
# ./install.sh
 

Depois de instalado e configurado, o Zimbra irá utilizar o Tomcat como WebServer utilizando apenas http na porta 80 e se comunicará internamente por ssh na porta 22. A partir daqui a configuração é opcional e foi feita apenas para não rodar o ssh na porta padrão e utilizar o Apache como WebServer http na porta 80, isso é útil para quem utiliza o mesmo servidor para hospedagem de outros domínios por facilitar a configuração. Para ativar apenas o https no Tomcat do Zimbra: 

# su - zimbra
$ zmtlsctl https
$ zmcontrol stop
$ zmcontrol start
$ exit
 

Agora o Tomcat funcionará apenas na porta 443 para https, deixando a porta 80 livre para o Apache. Para garantir que os logins sempre sejam efetuados utilizando https e não requerer que o usuário digite https no browser crie um redirecionamento no Apache para o endereço desejado. Assim logo que o cliente tentar acessar o webmail o apache o redirecionará para o Tomcat utilizando SSL. 

Para alterar a porta de acesso do SSH primeiramente deverá modificar o arquivo de configuração do sshd: 

# vi /etc/ssh/sshd_config 

E altere a linha Port 22, modifique para: 

Port 8022

Logo em seguida reinicie o sshd: 

# /etc/initi.d/ssh restart 

Agora deve configurar o Zimbra para se comunicar via ssh na nova porta: 

# su - zimbra
$ zmprov ms host.dominio.com.br zimbraRemoteManagementPort 8022
$ zmcontrol stop
$ zmcontrol start
$ exit
 

Para verificar se tudo está funcionando e iniciou sem erros confira o status dos serviços: 

# su - zimbra
$ zmcontrol status
 

Para acessar o painel administrativo use seu browser utilizando o endereço do seu host utilizando https na porta 7071. Por exemplo: 

https://host.dominio.com.br:7071 

É recomendado que não permita acesso externo à sua rede ao painel administrativo. Uma sugestão é utilizar o iptables para isso: 

# iptables -A INPUT -p tcp --dport 7071 -s ! localnet/24 -j DROP 

sábado, 9 de janeiro de 2010

Configurando um servidor de e-mail para pequenas redes

Índice

   1. Entendendo
   2. Como funciona o processo
   3. Instalando os pacotes necessários
   4. Configurando o sendmail
   5. Configurando o fetchmail
   6. Configurando o procmail
   7. Conclusão

 

Entendendo

 
Nos dias atuais o e-mail é uma das ferramentas mais utilizadas para nossa comunicação. A maioria das empresas vem gradualmente adotando esta ferramenta para troca de informações e estreitamento de contato com seus clientes. Desta forma, muitas empresas estão amarradas a acessos discados e dispendiosos para a comunicação, ou até já possuem uma linha de acesso dedicada, mas não trabalham com alguma solução de servidores de e-mail. É neste sentido que este artigo procura trabalhar, facilitar a configuração de um servidor de e-mail, principalmente para quem trabalha com o acesso discado, e onde é verificado que vários usuários se conectam diariamente por seus modens para baixar e transmitir seus e-mails, mesmo que isso seja feito através de um servidor de discagem por demanda, o custo é altíssimo, pois a maioria dos usuários não fazem a checagem e envio de email no mesmo horário. 

Imaginemos um ambiente, onde temos um servidor de discagem por demanda que disponibiliza o acesso discado a internet para todos os usuários. Nele temos um servidor de email, que a cada tempo determinado, por exemplo intervalos de 1h ou 2h, conecta-se automaticamente a internet e pega todos os mails dos usuários e despacha algum que esteja em sua fila de envio. Em seguida algum usuário da rede resolve checar seus e-mails e recebe tudo do spool local de seu servidor. Vê e responde algumas mensagens, que vão para a fila de envio do servidor local, que aguardará a próxima conexão para enviá-los definitivamente para a internet. 

Bom, agora que temos o cenário montado, vamos partir para verificar como este processo funciona e quais programas envolvidos em nosso servidor Linux. 
 
 

Como funciona o processo

Nesse documento consideramos que a rede interna, o DNS e o acesso por demanda do servidor estão funcionando corretamente, caso não tenha o acesso por demanda configurado, veja um pequeno tutorial em http://linux.trix.net. A documentação para configurar sua rede e seu DNS veja em http://www.conectiva.com.br/suporte/pr. 

Voltemos ao nosso assunto, imagine este servidor Linux, com várias estações Linux e Windows. 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 vamos utilizar o Sendmail, que gerenciará estas mensagens. Quando 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 programa fetchmail. 

Até agora tudo tranqüilo, mas temos um e-mail na empresa chamadovendas@empresa.com.br e que temos três vendedores que atendem esse mail. Após um contato preliminar com o cliente, será pedido para o cliente enviar os e-mails colocando no 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 sua conta, separando das demais. 

No final, teremos uma conta que receberá todos os emails 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 email)
  • fetchmail (para pegar e-mails da internet)
  • procmail (para fazer filtros de mensagens)
A maioria das distribuições de seu Linux favorito traz estas ferramentas, caso sua distribuição não traga, procures os programas nos seguintes sites:

Neste artigo, utilizei para os testes enquanto escrevia, a distribuição Conectiva Linux Servidor, versão 5.1, mas dadas as características dos programas, eles serão padrão na maioria das distribuições. 

 

 

Configurando o sendmail

 
Primeiro vamos configurar o Sendmail, o mesmo pode ser configurado de várias formas, com a ferramenta m4, com linuxconf, etc. Neste artigo, iremos configurá-lo utilizando o linuxconf: 

Abra o linuxconf: 

# linuxconf 

Entre na parte: 

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

Entre na opção de Informações Básicas: 

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

E deixe configurado da seguinte forma: 

--------------------------------------------------
Apresentar seu sistema como  : 
                       [X]Aceitar email para 
Servidor de email            :
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 _______
-------------------------------------------------

Esta é uma configuração simples e rápida do sendmail, que servirá para o nosso propósito. 

Confirme, e entre agora no menu: 

Opção --->Regras de mascaramento
      -------> Adicionar 

-------------------------------------------------
                     [*] esta regra está ativa
De: Original              :
De: Novo                  :
Comentário                :
-------------------------------------------------

Desta forma, será garantido que os e-mails 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 servidor local, e evitar que outros utilizem seu servidor durante a conexão: 

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

# vi /etc/sendmail.cw 

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

Se o sendmail.cw não for configurado, os usuários receberão a 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: 

# mcedit /etc/relay-domains 

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

OBS: Os espaços entre o ip e nomes 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 POP3 do correio: 

# vi /etc/inetd.conf 

Descomente a linha: 

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

Salve o arquivo e saia, reinicie o inetd: 

# cd /etc/rc.d/init.d/
# ./inet restart
 

E inicie o sendmail: 

# ./sendmail start 

Pronto, nosso servidor de e-mail já está rodando. 

Agora, caso sua rede não tenha os usuários cadastrados, crie os usuários internos que terão conta de email, uma maneira simples é com o comandoadduser, proceda da seguinte forma: 

# adduser 

e grave uma senha para o usuário: 

# passwd 

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 = 
servidor smtp = 
usuário: 

Mande uma mensagem para seu próprio usuário local, para verificar se você está recebendo os e-mails corretamente. 

Configurando o fetchmail

 
Agora, vamos pegar os e-mails da internet que está no provedor de acesso, 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: 

set logfile "/var/log/fetchmaillog"
set postmaster ""
set daemon 123
set bouncemail
poll <provedor_internet> proto POP3 
   user "<usuário>" with pass "<senha>" is "<usuário_local>" here

A opção set logfile é para criar um arquivo de log que será muito útil. A opção set daemon é a que será utilizada para os intervalos de checagem dos emails, o valor é em segundos. A linha que inicia com o pool é para baixar os emails de seu provedor, troque as expressões marcadas com <> com as seguintes definições:
  • <provedor_internet>: coloque o endereço do servidor pop3 de seu provedor.
  • <usuário> e <senha>: coloque o nome do usuário com a senha da conta na internet.
  • <usuário_local>: coloque o nome do usuário local que vai receber as mensagens.
Crie quantas regras de recepção de e-mail forem necessárias. 

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

Rode o fetchmail e com a opção de daemon setada para ele fazer a checagem dos e-mails no intervalo que achar suficiente. 

# fetchmail -mda "/usr/bin/procmail -d %T" 

A segunda parte do comando chama o procmail, que é o 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: 

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin
INBOX=/home//mail/INBOX
MAILDIR=/home//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 destino 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á acrescentar no script por discagem por demanda, ou configurar um intervalo de tempo para o comando do sendmail despachar sua fila de envio de email. O comando utilizado é: 

sendmail -q 

Agora basta que os usuários baixem as contas recebidas que estão no spool do 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 mesmos para a internet. E no caso de compartilhar uma mesma conta na internet para dois ou mais usuários, o procmail separará as mensagens de acordo com a regra estabelecida. 

Para efeito de testes e monitoria, utiliza-se a verificação dos logs para sabermos o que está ocorrendo em nosso servidor, para isso os logs destes. 

Para verificar o log do sendmail, veja o arquivo:
  • /var/log/maillog
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. Pode-se verificar o andamento do servidor, com um terminal rodando o tail, por exemplo: 

# tail -f /usr/log/maillog 

 

Conclusão

Este é o mínimo necessário que precisamos para colocar esta solução funcionando. Existem muitas opções de configuração deste serviço, em que um administrador de sistema poderá utilizar para melhorar sua configuração. Para isso, basta consultar a documentação disponível, desde as páginas man, quanto a documentação no site de cada desenvolvedor.