Há pouco tempo precisei que um script me enviasse um e-mail, no entanto precisava que o e-mail viesse de uma conta autenticada, pois caso contrário o servidor de e-mail de destino iria descartar a mensagem. Pesquisei um pouco e não encontrei muitos scripts, ou encontrei alguns que faziam uso de alguma ferramenta; como não queria instalar um ou outro software pra isso, acabei adaptando alguns scripts encontrados usando apenas o telnet para envio, e o resultado pode ser visto abaixo:

#!/bin/bash
#
# Envia e-mails usando uma conta de e-mail válida através de telnet
#
# Autor: Renato Resende Batista
# mail: contato[@]zenatuz[.]com
# twitter: @zenatuz
#
# Última atualização: 28/07/2010
#
###############################

###############################
#
# VARIÁVEIS
#
# end_remetente - Endereço de e-mail do remente
# nome_remetente - Nome do rementente
# para - Destinatário.
# data - Data formatada como 01012010 as 11:31.
# assunto - Assunto do e-mail.
# mensagem - Texto da mensagem recebido como parâmetro (veja utilização abaixo).
# usuario - Usuário (usuario@provedor.com.br) codificado em BASE64***.
# senha - Senha codificada em BASE64***.
# provedor - Endereço smtp do servidor utilizado.
#
# Nota***: Utilize o site abaixo para converter para BASE64
# http://www.webpan.com/Customers/Email/base64_conversion.htm
#
###############################

###############################
#
# EXEMPLO DE UTILIZAÇÃO
#
# ./mail.sh "usuario@email.com" "Assunto da mensagem" "Mensagem a ser enviada."
#
###############################

para=$1;
assunto=$2;
mensagem=$3;

end_remetente="usuario@email.com";
nome_remetente="Nome do remetente "
data=`date "+%m/%d/%Y as %H:%M"`;

usuario="bW9uaXABCXYZ112343Iuacs==";
senha="bW9uaXABCXYZ112343Iuacs==";
provedor="smtp.provedor.com";

##############################
# NÃO ALTERE OS DADOS ABAIXO #
##############################

(echo "AUTH LOGIN";sleep 3
echo "$usuario"; sleep 1
echo "$senha"; sleep 1
echo "MAIL FROM: $end_remetente" ; sleep 1
echo "RCPT TO: $para"; sleep 1
echo "DATA"; sleep 1
echo "FROM: $nome_remetente" ; sleep 1
echo "TO: $para" ; sleep 1
echo "SUBJECT: $assunto"; sleep 1
echo "
------------------------------------------------------------
Data de envio: $data
------------------------------------------------------------

$mensagem

------------------------- ATENCAO --------------------------
Nao responda, e-mail enviado automaticamente.
"; sleep 1
echo "."; sleep 2
echo "quit" sleep 1
) | telnet $provedor 25 >;

De forma simples, sem necessitar de nada além de um telnet, você consegue enviar o e-mail autenticado! =D




Artigos relacionados:

  1. Tutorial – Conexão SSH sem necessidade de digitar senha
  2. Senha pra quê?
  3. Vírus finge ser atualização para o iPad
  4. E no final do mês…
  5. Recuperando sua Timeline do Twitter via PHP