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