All Projects → JojiiOfficial → Matrix-EmailBridge

JojiiOfficial / Matrix-EmailBridge

Licence: BSD-2-Clause license
A bridge written in Golang to receive and write emails in matrix

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Matrix-EmailBridge

Mautrix Telegram
A Matrix-Telegram hybrid puppeting/relaybot bridge
Stars: ✭ 508 (+402.97%)
Mutual labels:  matrix, bridge
ligh7hau5
A Matrix (https://matrix.org/docs/spec/) to Fediverse / ActivityPub client / bridge. Also, some media proxying.
Stars: ✭ 26 (-74.26%)
Mutual labels:  matrix, bridge
Mautrix Hangouts
A Matrix-Hangouts puppeting bridge
Stars: ✭ 29 (-71.29%)
Mutual labels:  matrix, bridge
imail
small mail server
Stars: ✭ 88 (-12.87%)
Mutual labels:  imap, smtp
imap-honey
IMAP or SMTP honeypot written in Golang
Stars: ✭ 22 (-78.22%)
Mutual labels:  imap, smtp
Matterbridge
bridge between mattermost, IRC, gitter, xmpp, slack, discord, telegram, rocketchat, twitch, ssh-chat, zulip, whatsapp, keybase, matrix, microsoft teams, nextcloud, mumble, vk and more with REST API (mattermost not required!)
Stars: ✭ 4,452 (+4307.92%)
Mutual labels:  matrix, bridge
Matrix Appservice Slack
A Matrix <--> Slack bridge
Stars: ✭ 164 (+62.38%)
Mutual labels:  matrix, bridge
instagram
A Matrix-Instagram DM puppeting bridge
Stars: ✭ 69 (-31.68%)
Mutual labels:  matrix, bridge
enough mail
IMAP, POP3 and SMTP clients for Dart developers. Contains both low level as well as a high level API.
Stars: ✭ 78 (-22.77%)
Mutual labels:  imap, smtp
PySMS
Simple Python API that that allows you to send texts via SMTP with a best effort approach and process replies via IMAP
Stars: ✭ 19 (-81.19%)
Mutual labels:  imap, smtp
Matrix Appservice Discord
A bridge between Matrix and Discord.
Stars: ✭ 383 (+279.21%)
Mutual labels:  matrix, bridge
matrix-sms-bridge
Matrix bridge, that allows you to bridge matrix rooms to SMS with one telephone number only.
Stars: ✭ 62 (-38.61%)
Mutual labels:  matrix, bridge
matrix-puppet-facebook
a puppetted facebook bridge
Stars: ✭ 90 (-10.89%)
Mutual labels:  matrix, bridge
Mautrix Whatsapp
A Matrix-WhatsApp puppeting bridge
Stars: ✭ 484 (+379.21%)
Mutual labels:  matrix, bridge
telematrix
Bridge between Telegram and Matrix
Stars: ✭ 95 (-5.94%)
Mutual labels:  matrix, bridge
Matrix Puppet Imessage
A two-way puppeted Matrix bridge for Apple iMessage / Messages
Stars: ✭ 109 (+7.92%)
Mutual labels:  matrix, bridge
matrix-pstn-bridge
☎️ A Matrix Puppet bridge for the public telephone network that supports a number of VoIP providers (Twillo, Vonage, etc.). Sends and receives voice and SMS.
Stars: ✭ 25 (-75.25%)
Mutual labels:  matrix, bridge
matrix-appservice-bridge
Bridging infrastructure for Application Services
Stars: ✭ 119 (+17.82%)
Mutual labels:  matrix, bridge
Mautrix Facebook
A Matrix-Facebook Messenger puppeting bridge
Stars: ✭ 172 (+70.3%)
Mutual labels:  matrix, bridge
Mailozaurr
Mailozaurr is a PowerShell module that aims to provide SMTP, POP3, IMAP and probably some other ways to interact with Email. Underneath it uses MimeKit and MailKit libraries written by Jeffrey Stedfast.
Stars: ✭ 107 (+5.94%)
Mutual labels:  imap, smtp

Matrix-EmailBridge

A Matrix-bridge to allow you receiving and sending emails in Matrix. You can have multiple email accounts and write emails to one or multiple recipients.

Installation

Compile method

git clone https://github.com/JojiiOfficial/Matrix-EmailBridge
cd Matrix-EmailBridge/main
go get -v -u
go build -o emailbridge
./emailbridge

The last command executes the bridge once to create the probably missing config file.
Continue: --> Configure

Docker method

DockerHub: https://hub.docker.com/r/jojii/matrix_email_bridge

Run

docker pull jojii/matrix_email_bridge

to pull the image. Then create a container by running

docker run -d \
--restart unless-stopped \
-v `pwd`/data:/app/data \
--name email_bridge \
jojii/matrix_email_bridge

This will create and start a new Docker Container and create a new dir called 'data' in the current directory. In this folder data.db, cfg.json and the logs will be stored.

After configuring the bridge you have to run

docker start email_bridge

to start the docker container again.
Note: 'localhost' as 'matrixserver' (in cfg.json) wouldn't work because of dockers own network. You have to specify the internal IP address of the matrix-synapse server!

Get started

  1. Create a bot user.
  2. Get an access token to your Matrix-Server:
curl -XPOST -d '{"type":"m.login.password", "user":"@mailBotUsername:your-domain.com", "password":"mailbotPassword"}' "https://matrix.your-domain.com/_matrix/client/r0/login"
  1. Adjust the config file (cfg.json) to make it work with your matrix server:
{
  "allowed_servers": [
    "your-base-domain.com"
  ],
  "defaultmailcheckinterval": 30,
  "htmldefault": false,
  "markdownenabledbydefault": true,
  "matrixaccesstoken": "access-token-from-step-3",
  "matrixserver": "matrix.full-matrix-server-domain.com",
  "matrixuserid": "@mailBotUsername:your-base-domain.com"
}
  1. Invite your bot into a private room, it will join automatically.

If everything is set up correctly, you can bridge the room by typing !login. Then you just have to follow the instructions. The command !help shows a list with available commands.
Creating new private rooms with the bridge lets you add multiple email accounts.

Note

Note: you should change the permissions of the cfg.json and data.db to 640 or 660 because they contain sensitive data.

Features

  • Receiving Email with IMAPs
  • Use custom IMAPs Server and port
  • Use the bridge with multiple email addresses
  • Use the bridge with multiple user
  • Ignore SSL certs if required
  • Detailed error codes/logging
  • Use custom mailbox instead of INBOX
  • Sending emails (to one or multiple participants)
  • Use markdown (automatically translated to HTML) for writing emails (optional)
  • Viewing HTML messages (as good as your matrix-client supports html)
  • Attaching files sent into the bridged room
  • Emailaddress blocklist (Ignore emails from given emailaddress)

TODO

  • System to send passwords not in plaintext
  • Add more header (CC/Bcc)
  • Update the installerscript
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].