XMPP SMTP Gateway
A xmpp gateway to send emails from your xmpp messenger.
I needed a simple and lightweight xmpp -> smtp gateway, but could not find a good one. This module enables me to send simple emails right from my chat messenger.
- Support for subject & body as specified in RFC 3921 and RFC 6121
- Support for html content: XEP 0071
- Support for XEP-0106: JID Escaping as email adress e.g.
firstname.lastname@example.org represented as jid
- support for in-line XEP-0231: Bits of Binary attachments
- Outbound SMTP gateway only
- No templating because we support XEP 0071
- Run as XEP-0114: Jabber Component or XEP-0220: Server Dialback
# install it as a global component npm install -g xmpp-smtp-gw xmpp-smtp-gw configfile # start it from the installation directory node bin/xmpp-smtp-gw config/component.json # start with debugging DEBUG=* node bin/xmpp-smtp-gw config/component.json # This project also ships with a `Procfile` and plays well # with foreman foreman start
This module delivers as a XMPP component () or XMPP s2s component. Both components behave similar.
Be aware that it this module does not generate different content types for images. Either use inline images via data urls or use external hosted images.
The gateway comes with jshint and mocha test. Just run
The integration with prosody is tested with vagrant and Ubuntu 12.04.
- Boot up Ubuntu 12.04
- Install Prosody
- Prepares Prosody to accept a component
smtp.example.com(Prosody config) or talk with an domain
xmppsmtpgateway.com(bind dns config) via a server-2-server connection.
Afterwards you need to add the following entry to your hosts file in
Once you got this try to
ping example.com and you should see a connection to 192.168.55.10. As a next step you need to configure the SMTP server in
config/s2s.json. Just add the server and the mailbox credentials in
Now we are ready to prepare the XMPP messages. Configure
test/client/s2s/message.xml with a proper target. e.g. change
email@example.com. The local part of the jid needs to be escaped according to XEP-0106: JID Escaping.
Test the XMPP Component
vagrant ssh cd /vagrant foreman start # open a new terminal and start node test/client/component/send.js
Test the XMPP Server-2-Server
# on your machine DEBUG=* node bin/xmpp-smtp-gw config/s2s.json # open a new terminal and start node test/client/s2s/send.js
Send messages from XMPP messenger
If you would like to send emails directy from your xmpp client, configure the user
firstname.lastname@example.org with the password
me in your favorite XMPP messenger and send a message to
user\email@example.com (component) or
user\firstname.lastname@example.org depending on the setup you use.
- Thread support
- Christoph Hartmann
- Sessionbird GmbH