O que é SendEmail - Blog Sistemas e Cia

Transcrição

O que é SendEmail - Blog Sistemas e Cia
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
SendEmail - O que é
No Linux temos algumas opções para enviar e-mails. Uma das mais conhecidas é o SendMail
(isso mesmo, sem o E de SendEmail). O problema do SendMail é que ele é um servidor
completo de e-mail. Sua finalidade é transformar seu servidor em um servidor de e-mail
independente para sua rede interna ou intranet. Ele também pode encaminhar seus e-mails
por um servidor de e-mail externo, mas usá-lo exclusivamente assim seria uma subutilização
de sua capacidade, sem contar que não o dispensaria de boa parte da pesada configuração
que normalmente acompanha servidores do porte do SendMail.
Para esta situação foi feito o SendEmail (agora com o E). O SendEmail é um script em Perl,
leve, que roda independente de outros módulos e faz precisamente o trabalho de encaminhar
um e-mail SMTP através de um servidor SMTP, que bem pode ser o do seu provedor de
internet. A configuração necessária para isto é muito simples e, como não se trata de um
servidor, oferece um grau reduzido de risco à segurança.
O SendEmail também é uma aplicação de código aberto e multiplataforma, atualmente
disponível nos ambientes Linux, BSD, OS X, Windows 98, Windows NT, Windows 2000, &
Windows XP. Como é distribuída em sua forma de fonte, podemos virtualmente dizer que ela
executa em qualquer ambiente com uma implementação padrão de Perl.
SendEmail - Como Instalar
1/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
Será que já tenho instalado ?
Antes de mais nada, verifique se sua distribuição já não o traz instalado. Para isso, vá ao
terminal e digite os seguinte comando:
$ ls -l /usr/bin/sendEmail
Se já tiver encontrado, verifique a versão com a instrução abaixo:
$ sendEmail --help
Isto irá apresentar a tela de ajuda, contendo informações de como utilizar o SendEmail, com as
opções que ele aceita. Na primeira linha da tela, temos o nome do produto e a versão. Se
tiver apresentado "sendEmail-1.55", você tem a versão que é a mais atual no momento em que
escrevo este artigo.
Não, não tenho instalado!
2/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
Aqueles que não tiverem encontrado o SendEmail pelo processo acima, precisarão instalá-lo.
Caso você rode uma distro Debian como o Ubuntu, poderá fazê-lo usado o gerenciador de
pacotes apt, como demonstrado abaixo:
$ apt-get install sendemail
Em outros ambientes, você poderá fazer o download do pacote no site do SendEmail, aqui .
Na atual versão, basta descompactar o pacote, copiar o arquivo sendEmail para a parta
/usr/bin e atribuir permissão de execução. Mas não se furte a ler as instruções mais recentes
que possam ter no site.
SendEmail - Como usar ?
A grande vantagem de se utilizar o SendEmail é que ele é ideal para ser utilizado a partir da
linha de comando e, por tanto, facilmente adaptável a um shell script. Toda a configuração que
ele precisa para funcionar pode ser passada em uma única linha de comandos, sem a
necessidade de arquivos de configuração. Abaixo temos um exemplo de uso, destacando
todas as opções normalmente necessárias:
3/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
$ sendEmail -f [email remetente] -t [email destinatário] -u [assunto] -m [mensagem] -s
[servidor smtp] -xu [usuário smtp] -xp [password smtp]
No exemplo acima, as opções -s, -xu e -xp fornecem a configuração do servidor de smtp e o
usuário e senha (caso o servidor requeira autenticação).
Outra forma de uso muito comum é trocar a opção -m, que obriga que a mensagem seja
informada em seguida, na linha de comandos, pela opção -o message-file, que permite
informar o nome do arquivo onde se encontra o corpo da mensagem de e-mail.
Outra opção interessante na maioria dos contextos é o envio de arquivos anexos. Para tal,
basta acrescentar a opção -a, seguida da relação dos arquivos que deseja colocar no anexo.
SendEmail - Você precisa de um patch ?
Se você estiver testando o SendEmail e estiver obtendo a mensagem "ERROR => Received:
535 5.7.0 Error: authentication failed: bad protocol / cancel
" mesmo após ter revisado exaustivamente seus argumentos, você pode ter encontrado o bug
descrito
aqui
4/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
.
Este bug afeta o SendEmail após este incorporar o recurso TLS. Consiste em uma falha na
forma como SendEmail codifica as linhas que envia durante o processo de autenticação.
A boa notícia é que, caso você esteja usando a versão 1.55, você poderá usar o patch postado
no link acima para corrigir este problema.
Para efetuar o patch você precisará do pacote patch. Se precisar, no Ubuntu, este pacote
pode ser instalado pelo gerenciador de pacotes apt:
$ apt-get install patch
Em seguida faça o download do patch disponibilizado no link acima. Sugiro que coloque o path
no seu /tmp. Para aplicar o patch bastará executar a seguinte instrução:
5/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
$ patch -b -p1 </tmp/sendEmail.patch
A instrução poderá emitir um prompt perguntando pelo arquivo a ser "atualizado". Informe
/usr/bin/sendEmail, que - como vimos acima - é o local onde fica instalado o script do
SendEmail.
Então estará concluído. Refaça seu teste. Se a falha se devia ao bug do TLS, seu teste
deverá funcionar. De qualquer forma, se não estiver satisfeito com o patch, ele poderá ser
desfeito, uma vez que a opção -b usada acima fez com que o patch criasse uma cópia do
sendEmail, antes de aplicar a atualização. Esta cópia deverá estar na pasta /usr/bin com o
nome de sendEmail.orig, (podendo variar, conforme a distro que estiver usando).
Conclusão
O SendEmail é uma ferramenta de fácil instalação, leve e simples de usar. Está disponível nas
principais plataformas e se adequa perfeitamente à programação de shell scripts, podendo
preencher uma lacuna muitas vezes espinhosa que é a o de enviar e-mail programaticamente.
Ferramenta de código aberto, gratuita e bastante utilizada, conta com o serviço de suporte da
comunidade que está atuante para dispor informações e atualizações que venham a ser
6/7
SendEmail
Escrito por Júlio Oliveira
Ter, 30 de Junho de 2009 20:06 - Última atualização Seg, 17 de Agosto de 2009 17:25
necessárias. Sem dúvida alguma é uma opção a ser considerada para complementar os
recursos da automação de tarefas com shell script.
7/7

Documentos relacionados