Go to file
2020-10-01 18:59:56 +02:00
man Fix manpage formatting. 2020-10-01 18:59:56 +02:00
vendor Update vendored dependencies. 2020-08-30 10:40:54 +02:00
.gitignore Initial commit 2018-08-04 12:16:28 +02:00
go-sendxmpp.go Add support for password managers. 2020-10-01 18:55:41 +02:00
go.mod Update vendored dependencies. 2020-08-30 10:40:54 +02:00
go.sum Update vendored dependencies. 2020-08-30 10:40:54 +02:00
httpupload.go Check for http status code. 2020-04-11 16:08:15 +02:00
jid.go Fix typos 2020-04-05 22:02:09 +02:00
LICENSE Fix whitespaces in licenses. 2020-04-04 14:20:03 +02:00
LICENSE-mellium Fix whitespaces in licenses. 2020-04-04 14:20:03 +02:00
README.md Add support for password managers. 2020-10-01 18:55:41 +02:00

go-sendxmpp

about

A little tool to send messages to an XMPP contact or MUC inspired by sendxmpp.

requirements

installation

If you have GOPATH set just run this commands:

$ go get salsa.debian.org/mdosch/go-sendxmpp
$ go install salsa.debian.org/mdosch/go-sendxmpp

You will find the binary in $GOPATH/bin or, if set, $GOBIN.

usage

You can either pipe a programs output to go-sendxmpp, write in your terminal (put ^D in a new line to finish) or send the input from a file (-m or --message).

The account data is expected at ~/.sendxmpprc if no other configuration file location is specified with -f or --file. The configuration file is expected to be in the following format:

username: <your_jid>
jserver: <jabber_server>
port: <jabber_port>
password: <your_jabber_password>

jserver and port might not be necessary depending on the used server. It is also possible to use a password manager. In this case the password setting should be replaced by the eval_password setting:

eval_password: <command_to_unlock_your_password>

If no configuration file is present or if the values should be overridden it is possible to define the account details via command line options:

 Usage: go-sendxmpp [-cdintx] [-f value] [--help] [--http-upload value] [-j value] [-m value] [-p value] [-r value] [-u value] [parameters ...]
 -c, --chatroom     Send message to a chatroom.
 -d, --debug        Show debugging info.
 -f, --file=value   Set configuration file. (Default: ~/.sendxmpprc)
     --help         Show help.
     --http-upload=value
                    Send a file via http-upload.
 -i, --interactive  Interactive mode (for use with e.g. 'tail -f').
 -j, --jserver=value
                    XMPP server address.
 -m, --message=value
                    Set file including the message.
 -n, --no-tls-verify
                    Skip verification of TLS certificates (not recommended).
 -p, --password=value
                    Password for XMPP account.
 -r, --resource=value
                    Set resource. When sending to a chatroom this is used as
                    'alias'. (Default: go-sendxmpp) [go-sendxmpp]
 -t, --tls          Use TLS.
 -u, --username=value
                    Username for XMPP account (JID).
 -x, --start-tls    Use StartTLS.

examples

Send a message to two recipients using a configuration file.

cat message.txt | ./go-sendxmpp -f ./sendxmpp recipient1@example.com recipient2@example.com

Send a message to two recipients directly defining account credentials.

cat message.txt | ./go-sendxmpp -u bob@example.com -j example.com -p swordfish recipient1@example.com recipient2@example.com

Send a message to two groupchats (-c) using a configuration file.

cat message.txt | ./go-sendxmpp -cf ./sendxmpp chat1@conference.example.com chat2@conference.example.com

Send file changes to two groupchats (-c) using a configuration file.

tail -f example.log | ./go-sendxmpp -cif ./sendxmpp chat1@conference.example.com chat2@conference.example.com