Você está na página 1de 3

23/9/2014

Autenticando e enviando e-mail diretamente atravs da linha de comando [Artigo]

Autenticando e enviando e-mail diretamente atravs da linha de comando


Autor: Keust Pablo Silvano <keustps at gmail.com>
Data: 17/09/2009
Introduo
H um tempo em meu curso estudei alguns protocolos de comunicao, entre eles os protocolos de email: SMTP, IMAP e POP3. Vi os comandos que eram utilizados para se enviar e receber um e-mail,
porm havia um problema: para test-los tnhamos que instalar um servidor de e-mail e configur-lo
para ento, por Telnet, utilizar os comandos.
Mas a ideia de testar os comandos apenas em laboratrio no me agradava muito. Eu queria me
comunicar com servidores reais, tais como Yahoo, Gmail e outros.
Como minha conta de e-mail mais utilizada a do Gmail, resolvi comear a pesquisar como enviar um
e-mail para os servidores de e-mail da Google.
Caso precise de ajuda quanto aos comandos do SMTP, IMAP ou do POP3:
Os protocolos de servio de mensagens (SMTP, POP3 e IMAP4)

Configurando a conta do Gmail


Para podermos receber qualquer e-mail por um cliente devemos tambm ajustar duas configuraes na
nossa conta de e-mail.
Acessando minha conta do Gmail eu vou em Configuraes > Encaminhamento e POP/IMAP, aqui
ativamos o POP na opo Ativar POP para todos os e-mails e o IMAP na opo Ativar IMAP.
Para enviar e-mail para o Gmail precisamos primeiro saber qual o seu servidor e qual a porta que
deveremos acessar para enviar ou receber um e-mail. O prprio Gmail possui essas informaes:
Servidor de entrada de e-mail (IMAP) - requer SSL
imap.gmail.com
Utilizar SSL: Sim
Porta: 993
Servidor de entrada de e-mail (POP3) - requer SSL
pop.gmail.com
Utilizar SSL: Sim
Porta: 995
Servidor de sada de e-mail (SMTP) - requer TLS
http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10483

1/3

23/9/2014

Autenticando e enviando e-mail diretamente atravs da linha de comando [Artigo]

smtp.gmail.com (usa autenticao)


Usa autenticao: Sim
Utilizar STARTTLS: Sim (alguns clientes o chamam de SSL)
Porta: 465 ou 587
Como indicado acima, podemos enviar o e-mail por SMTP para duas portas diferentes: a 465 e a 587.
Todas as duas exigem uma conexo criptografada, a diferena est que a 465 exige protocolo SSL de
criptografia, j a porta 587 exige o protocolo TLS.

Conectando com o servidor e enviando um e-mail


Para criar uma conexo criptografada utilizei o OpenSSL, que uma ferramenta que implementa os
protocolos SSL e TLS.
Para instalar, basta usar o comando:
# sudo apt-get install openssl
Agora com a ferramenta instalada, vamos criar uma conexo. Porm, como temos duas portas que
esperam diferentes protocolos, ento teremos tambm diferentes sintaxes para cada uma delas. Para
conectar na porta 465 utilize o comando:
# openssl s_client -crlf -connect smtp.gmail.com:465
Como a porta 587 utiliza TLS, para se conectar por ela devemos especificar ao OpenSSL que utilize
este tipo de criptografia, com isso o comando ficaria o seguinte:
# openssl s_client -crlf -starttls smtp -connect smtp.gmail.com:587
Agora que temos uma conexo aberta podemos utilizar os comandos do SMTP.
Enviamos um helo para nos identificarmos:
HELO nome_qualquer
Agora temos que nos autenticar. A autenticao feita da seguinte maneira:
AUTH PLAIN usurio_e_senha_criptografados_em_base_64
Para criarmos a chave com nosso usurio e senha criptografados em base 64 podemos utilizar um
comando em Perl:
$ perl -MMIME::Base64 -e 'print encode_base64("\000usurio\@gmail.com\000senha")'
Agora informamos o remetente do e-mail:
MAIL FROM: <usurio@gmail.com>
E o destinatrio:
RCPT TO: <destino@gmail.com>

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10483

2/3

23/9/2014

Autenticando e enviando e-mail diretamente atravs da linha de comando [Artigo]

Informamos que a mensagem iniciar logo aps o comando:


DATA
Agora podemos comear a digitar o e-mail:
From: Remetente <remetente@gmail.com>
To: Destinatrio <destinatario@dominio.com>
Subject: Assunto do E-mail
Contedo do e-mail...
Para finalizarmos o e-mail saltamos uma linha, digitamos um ponto (.) e saltamos mais uma linha.
E pronto, enviamos um e-mail sem utilizar nenhum cliente de e-mail.

Concluso
O que o artigo apresenta pode parecer uma maneira arcaica de enviar e-mail, ainda mais nos dias de
hoje, com tantos clientes de e-mail personalizveis e outros em que nem h necessidade de instalao e
rodam diretamente da web.
Porm, com este artigo lidamos diretamente com os comandos do SMTP, trabalhando com o protocolo
sem nenhuma aplicao intermediria. Esta a base para qualquer um que tenha vontade de aprender a
lidar com o SMTP diretamente, seja por fins meramente educativos ou at mesmo caso queira
desenvolver um novo cliente de e-mail.

http://www.vivaolinux.com.br/artigo/Autenticando-e-enviando-email-diretamente-atraves-da-linha-decomando
Voltar para o site

http://www.vivaolinux.com.br/artigos/impressora.php?codigo=10483

3/3