
O sendEmail é um cliente SMTP de linha de comando escrito em Perl pelo Brandon Zehn. Com ele é possível automatizar envio de email, integrando o sendEmail em um bash script, perl script e arquivo batch. Suporta as seguintes plataformas: BSD, Linux, OS X, Windows 98, Windows NT, Windows 2000 e Windows XP. Essas informações foram retidas do site oficial, o último release foi lançado em setembro de 2009, provavelmente tem suporte ao Windows 7 e outras versões superiores.
Tarefas rotineiras de Administrador de Banco de Dados (DBA) e Administrador de Redes que exigem apenas leitura podem ser automatizadas utilizando bash script + sendEmail + crontab. Por exemplo, se todos os dias você verifica o log do backup e você tem 10 backups para verificar, basta centralizar todos os logs no seu email, agende o bash script no crontab e quando chegar pela manhã os logs já estarão disponíveis. Se o bash script for um pouco inteligente é possível que o email seja disparado apenas quando houver erro.
Creio que vale a pena começar a analisar quais tarefas podem ser automatizadas, desta forma você terá mais tempo para as tarefas que realmente exigem mais atenção.
Download
O download pode ser encontrado no site do Brandon Zehn:Para fazer o download com o wget:
[root@mytracelog ~]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
Instalação
O processo de instalação é muito simples:- Extraia o pacote:
- Copie o script sendEmail para /usr/local/bin:
- Garanta que o script possui permissão de execução:
- Instale os pacotes perl.x86_64, perl-Net-SSLeay e perl-IO-Socket-SSL:
[root@mytracelog ~]# tar -zxvf sendEmail-v1.56.tar.gz
[root@mytracelog ~]# cp -a sendEmail-v1.56/sendEmail /usr/local/bin
[root@mytracelog ~]# chmod +x /usr/local/bin/sendEmail
[root@mytracelog ~]# yum install perl.x86_64 perl-Net-SSLeay perl-IO-Socket-SSL
Sintaxe do sendEmail 1.56
Após instalação qualquer usuário terá acesso ao sendEmail.[mytracelog@mytracelog ~]$ sendEmail sendEmail-1.56 by Brandon Zehm <caspian@dotconf.net> Synopsis: sendEmail -f ADDRESS [options] Required: -f ADDRESS from (sender) email address * At least one recipient required via -t, -cc, or -bcc * Message body required via -m, STDIN, or -o message-file=FILE Common: -t ADDRESS [ADDR ...] to email address(es) -u SUBJECT message subject -m MESSAGE message body -s SERVER[:PORT] smtp mail relay, default is localhost:25 Optional: -a FILE [FILE ...] file attachment(s) -cc ADDRESS [ADDR ...] cc email address(es) -bcc ADDRESS [ADDR ...] bcc email address(es) -xu USERNAME username for SMTP authentication -xp PASSWORD password for SMTP authentication Paranormal: -b BINDADDR[:PORT] local host bind address -l LOGFILE log to the specified file -v verbosity, use multiple times for greater effect -q be quiet (i.e. no STDOUT output) -o NAME=VALUE advanced options, for details try: --help misc -o message-content-type=<auto|text|html> -o message-file=FILE -o message-format=raw -o message-header=HEADER -o message-charset=CHARSET -o reply-to=ADDRESS -o timeout=SECONDS -o username=USERNAME -o password=PASSWORD -o tls=<auto|yes|no> -o fqdn=FQDN Help: --help the helpful overview you're reading now --help addressing explain addressing and related options --help message explain message body input and related options --help networking explain -s, -b, etc --help output explain logging and other output options --help misc explain -o options, TLS, SMTP auth, and more
Enviando email pelo terminal com o SMTP do gmail.com
Para o envio de email com o sendEmail é necessário de um SMTP, utilizaremos o SMTP do gmail.com. A tabela abaixo apresenta o cenário utilizado nos exemplos.Chave | Valor |
---|---|
SMTP do gmail.com | smtp.gmail.com |
Porta do SMTP | 25 |
587 | |
SMTP utiliza TLS | Sim |
Email do remetente | remetente@gmail.com |
Usuário do remetente | remetente |
Senha do remetente | senha |
Email dos destinatários | destinatario1@gmail.com |
destinatario2@gmail.com | |
destinatario3@gmail.com |
Seguindo a sintaxe segue alguns exemplos de uso:
- Enviando email:
- Enviando email com quebra de linha na mensagem:
- Enviando email para multiplos destinatários:
- Enviando email com cópia (CC):
- Enviando email com cópia oculta (BCC):
- Enviando email com conteúdo de arquivo texto:
- Enviando email com o conteúdo do STDOUT:
- Enviando email com anexos:
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -u "Assunto do Email" \ > -m "Mensagem do Email"
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -u "Assunto do Email" \ > -m "Primeira linha\nSegunda Linha\nTerceira linha\n"
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com; destinatario2@gmail.com; destinatario3@gmail.com" \ > -u "Assunto do Email" \ > -m "Mensagem do Email"
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -cc "destinatario2@gmail.com; destinatario3@gmail.com" \ > -u "Assunto do Email" \ > -m "Mensagem do Email"
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -bcc "destinatario2@gmail.com" \ > -u "Assunto do Email" \ > -m "Mensagem do Email"
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -u "Assunto do Email" \ > -o message-file=/etc/fstab
[mytracelog@mytracelog ~]$ df -h | sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -u "Assunto do Email" \
[mytracelog@mytracelog ~]$ sendEmail \ > -xu remetente \ > -xp senha \ > -s smtp.gmail.com:25 \ > -o tls=yes \ > -l /tmp/sendEmail.log \ > -f "remetente@gmail.com" \ > -t "destinatario1@gmail.com" \ > -u "Assunto do Email" \ > -m "Mensagem do Email" > -a /etc/fstab /etc/sysconfig/clock
Conclusão
Neste artigo foi apresentado o sendEmail, script Perl simples e poderoso para envio de email via linha de comando. Ideal para se integrar com bash script e crontab. Como foi visto a instalação e o uso é muito simples. Além do gmail.com o sendEmail pode ser utilizado com qualquer servidor SMTP como: bol, hotmail, ibest, ig, msn, pop, uol, terra, yahoo, zipmail, até mesmo o seu próprio servidor. O poder do sendEmail está na criatividade do Administrador de Banco de Dados (DBA) e Administrador de Redes em descobrir o que pode ser automatizado.Gostou do artigo? Ajude a divulgá-lo clicando no botão +1