Enviar e-mail via linha de comando

Esta é uma dica super rápida. Eis o cenário: você precisa enviar e-mails à partir da linha de comando (ou de algum script), mas não tem um servidor de e-mail configurado na máquina, porém, seu computador tem acesso a um servidor de e-mails (SMTP) e você tem uma conta de acesso para este tipo de uso.

Primeiro instale o utilitário heirloom-mailx. Ele provê o programa mailx, que utilizaremos neste exemplo. Para instalar, no Debian, execute o seguinte comando como root:

aptitude install heirloom-mailx

Agora é só enviar. A linha de comando é um pouco longa, mas os parâmetros são auto explicativos. Qualquer dúvida, consulte a página de manual (man mailx). Quebrei a linha de comando em várias linhas para facilitar o entendimento:

echo "AQUI VOCÊ COLOCA A MENSAGEM (CORPO) DO E-MAIL" | mailx -v \
-r "EMAIL-REMETENTE@DOMÍNIO" \
-s "AQUI VOCÊ COLOCA O ASSUNTO DO E-MAIL" \
-S smtp="NOME_OU_IP_DO_SERVIDOR_SMTP:PORTA" \
-S smtp-auth=login \
-S smtp-auth-user="USUÁRIO_DE_ACESSO_AO_SMTP@DOMINIO" \
-S smtp-auth-password="SENHA_DE_ACESSO_AO_SERVIDOR_SMTP" \
-S ssl-verify=ignore \
E-MAIL_DO_DESTINATÁRIO

O exemplo utilizou um servidor SMTP que não utiliza SSL/TLS para proteger os dados. Consulte o manual para outras opções de envio. Os textos em letras maiúsculas correspondem aos parâmetros que você deve ajustar de acordo com seu servidor SMTP.

Se o servidor SMTP suportar o uso de SSL/TLS, você deve adicionar o parâmetro “-S smtp-use-starttls” à linha de comando.

ATENÇÃO:

  • Cuidado com o uso deste comando em servidores ou em tarefas agendadas: como ele utiliza o nome de usuário e senha de acesso ao servidor SMTP, durante o envio do e-mail quaisquer usuários conectados ao computador poderão visualizar estas informações apenas verificando a lista detalhada de processos em execução.
  • O SSMTP não é um serviço de e-mail (servidor), ele apenas acessa um servidor SMTP (de envio de e-mail) e transmite a mensagem. Sendo assim, se ocorrer algum problema na comunicação do SSMTP com o servidor de e-mails, a mensagem não será enviada e o SSMTP não a armazenará e nem tentará seu envio posteriormente.

Fui.

Marião