Usando nc (netcat) para enviar emails via shell script

Posted on junho 20, 2009. Filed under: Linux |

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 “\r\n” 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.com\r\nMAIL FROM:teste@example.com\r\nRCPT TO:guest@example.com\r\nDATA\r\nSubject: Assunto\r\n\r\nCorpo da Mensagem\r\n\n.\n" | nc -C smtpexchange.com

Make a Comment

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Liked it here?
Why not try sites on the blogroll...

%d blogueiros gostam disto: