Enviando mensagens XMPP via Shell com sendxmpp (Openfire)

Em algumas situações, enviar uma mensagem XMPP direto da linha de comando pode ser uma solução simples e eficiente para alertas, automações ou bots internos. Neste post, você vai aprender a fazer isso de forma segura usando o cliente sendxmpp e um servidor Openfire.


Pré-requisitos

  • Servidor Openfire funcional
  • Usuário XMPP criado (por exemplo: [email protected])
  • Cliente sendxmpp instalado na máquina que vai enviar as mensagens (Debian/Ubuntu)

Instalando o sendxmpp

sudo apt update
sudo apt install sendxmpp

Configurando o usuário remetente

Crie o arquivo de configuração do sendxmpp no home do usuário que vai rodar os comandos:

nano ~/.sendxmpprc

Conteúdo:

[email protected]
senha_do_bot

Agora proteja esse arquivo:

chmod 600 ~/.sendxmpprc

Enviando uma mensagem

Use o comando abaixo para enviar uma mensagem para um destinatário XMPP:

echo "Fala Kemper, teste de shell via XMPP." | sendxmpp -t -j dominio.local [email protected]

Explicando os parâmetros:

  • -t: envia a mensagem como chat (não como broadcast)
  • -j dominio.local: domínio do seu servidor Openfire
  • [email protected]: destinatário XMPP

Modo de debug (opcional)

Caso queira verificar o que está acontecendo por trás do comando:

echo "Mensagem debug" | sendxmpp -t -d -j dominio.local [email protected]

Automatizando com script bash

Você pode colocar isso num script simples para ser disparado por cron, sensores, alertas ou bots:

#!/bin/bash

TO="[email protected]"
MSG="Servidor está com carga alta! Verifique imediatamente."

echo "$MSG" | sendxmpp -t -j dominio.local "$TO"

TLS e certificados

Se o seu Openfire utiliza STARTTLS com certificados internos/autogerados, pode ser necessário desabilitar a verificação:

echo "Alerta com TLS sem verificação" | sendxmpp -t -j dominio.local -o tls_verify=no [email protected]

Ou adicione no ~/.sendxmpprc:

tls_verify=no

Uso prático

  • Alerta de carga, espaço em disco, falha de backup
  • Notificação de login suspeito
  • Disparo de mensagens via webhook
  • Bots internos de monitoramento

Conclusão

Com sendxmpp, você transforma qualquer script shell em um bot XMPP funcional. Integrando com o Openfire, é possível montar soluções de notificação e monitoramento robustas, seguras e 100% locais — sem depender de Telegram, Slack ou outras nuvens externas.

Rolar para cima