1. O que é o sendxmpp
sendxmpp é uma ferramenta de linha de comando para enviar mensagens instantâneas via protocolo XMPP (Jabber). É simples, funciona direto no shell e pode ser usado em scripts e agendamentos como o crontab.
2. Pré-requisitos
- Sistema Linux/Unix com Perl instalado.
- O pacote
sendxmppinstalado.
Instalar o sendxmpp
No Debian/Ubuntu:
sudo apt update
sudo apt install sendxmpp
No CentOS/RHEL (via EPEL):
sudo yum install epel-release
sudo yum install sendxmpp
3. Parâmetros necessários para enviar a mensagem
- Usuário XMPP: seu login (exemplo:
usuario1). - Senha: senha do usuário.
- Servidor XMPP: endereço do servidor (exemplo:
xmpp.exemplo.com). - Destinatário: JID completo do usuário destino (exemplo:
[email protected]).
4. Comando básico para envio direto no shell
echo "Mensagem de teste" | sendxmpp -t -u usuario1 -p 'SenhaDoUsuario' -j xmpp.exemplo.com [email protected]
Explicação:
echo "Mensagem de teste": texto a ser enviado.sendxmpp: programa que envia a mensagem.-t: envia mensagem de chat para um único destinatário.-u usuario1: seu nome de usuário (sem domínio).-p 'SenhaDoUsuario': sua senha.-j xmpp.exemplo.com: servidor XMPP.[email protected]: destinatário completo.
5. Usando no Crontab
Para usar no crontab, crie um script shell para evitar expor senha na linha de comando ou variáveis de ambiente.
Exemplo de script /usr/local/bin/send_xmpp.sh
#!/bin/bash
USUARIO="usuario1"
SENHA="SenhaDoUsuario"
SERVIDOR="xmpp.exemplo.com"
DESTINO="[email protected]"
MENSAGEM="$1"
echo "$MENSAGEM" | sendxmpp -t -u "$USUARIO" -p "$SENHA" -j "$SERVIDOR" "$DESTINO"
Dê permissão de execução:
sudo chmod +x /usr/local/bin/send_xmpp.sh
Exemplo de linha no crontab
0 9 * * * /usr/local/bin/send_xmpp.sh "Mensagem automática diária"
6. Possíveis problemas e soluções
a) Erro de certificado SSL/TLS
Se o servidor usa certificado não confiável, adicione a opção para ignorar erros de certificado:
echo "Mensagem" | sendxmpp -t -u usuario1 -p 'SenhaDoUsuario' -j xmpp.exemplo.com -o ignore-cert-errors [email protected]
b) Falha na autenticação (SASL)
sendxmpp pode não suportar certos métodos modernos de autenticação. Atualize o pacote para a versão mais recente do repositório da sua distribuição.
Se continuar falhando, será necessário usar outra ferramenta ou script (fora do escopo deste tutorial).
7. Dicas de segurança
- Evite passar senha diretamente no comando em scripts públicos.
- Proteja o script com permissão restrita (
chmod 700ouchmod 500). - Considere usar arquivo
~/.sendxmpprcpara armazenar credenciais, se possível. - Nunca exponha suas credenciais em logs ou processos visíveis.
8. Resumo
| Passo | Comando / Ação |
|---|---|
| Instalar sendxmpp | sudo apt install sendxmpp |
| Enviar mensagem direta | echo "msg" | sendxmpp -t -u usuario -p senha -j servidor destinatario |
| Script para crontab | Crie script com variáveis e execute no crontab |
| Ignorar erros SSL | Adicione -o ignore-cert-errors |
