Strumenti Utente

Strumenti Sito


programmazione:python:inviare_messaggio_xmpp

Inviare messaggio XMPP con Python

Autore: Fabio Di Matteo
Ultima revisione: 02/07/2025 12:31

Lo script fa uso di Slixmpp.

notify.py

#!/usr/bin/env python3
 
from conf import *
 
import asyncio, ssl,sys
from slixmpp import ClientXMPP
from slixmpp.exceptions import IqError, IqTimeout
 
class Messenger(ClientXMPP):
    def __init__(self, jid, password, recipient, message):
        super().__init__(jid, password)
 
        self.recipient = recipient
        self.message = message
 
        # Registrare i gestori degli eventi
        self.add_event_handler("session_start", self.start)
        #self.add_event_handler("message", self.message_received)
 
    async def start(self, event):
        self.send_presence()
        await self.get_roster()
 
        # Inviare il messaggio
        self.send_message(mto=self.recipient, mbody=self.message, mtype='chat')
        print(f'Messaggio inviato a {self.recipient}: {self.message}')
 
        # Disconnettersi dopo aver inviato il messaggio
        self.disconnect()
 
    #def message_received(self, msg):
    #    print(f'Messaggio ricevuto: {msg["body"]}')
 
 
 
def main():
    recipient = sys.argv[1]
    message = sys.argv[2]
 
    xmpp = Messenger(jid, password, recipient, message)
 
    # Ignoro i certificati non conosciuti
    xmpp.ssl_context.check_hostname = False
    xmpp.ssl_context.verify_mode = ssl.CERT_NONE
 
 
    xmpp.connect()
    asyncio.get_event_loop().run_until_complete(xmpp.disconnected)
 
 
if __name__ == '__main__':
    main()

conf.py

jid = 'mioaccountxmpp@server.org'
password = 'secret'

Utilizzo

notify.py destinatario@xmppserver.org "Messaggio da inviare"
programmazione/python/inviare_messaggio_xmpp.txt · Ultima modifica: 02/07/2025 12:36 da Fabio Di Matteo