Usando nc (netcat) para enviar emails via shell script

O comand nc (netcat) é um utilitário usado para trabalhar com conexões dos protocolos tcp e udp. Nesse artigo vou mostrar como enviar emails diretamente para servidores de email utilizando a porta 25 (smtp).

Por padrão o comando nc não envia CRLF ao final de cada linha. Em servidores Linux geralmente isso não é problema, mas muitos serviços requerem o envio de CRLF ao final de cada linha.

Segue abaixo um exemplo do envio de email usando nc em um servidor Linux, onde não há necessidade do envio de CRLF no final de cada linha. Isso funciona perfeitamente em seu script shell:

# nc localhost 25 << EOF
HELO host.example.com
MAIL FROM: teste@example.com
RCPT TO: guest@example.com
DATA
Corpo do Email
.
QUIT
EOF

Em servidores Windows, Exchange por exemplo, é necessário o envio de CRLF ao final de cada linha. Para que funcione, vamos usar o comando ‘echo’ enviando os caractéres “rn” ao final de cada linha. Perceba que usamos o parâmetro ‘-C’ no comando nc, que envia CRFL ao final da linha.

echo -ne "HELO smtpexchange.comrnMAIL FROM:teste@example.comrnRCPT TO:guest@example.comrnDATArnSubject: AssuntornrnCorpo da Mensagemrnn.n" | nc -C smtpexchange.com

Please follow and like us:

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: