Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/JojiiOfficial/Matrix-EmailBridge
A bridge written in Golang to receive and write emails in matrix
https://github.com/JojiiOfficial/Matrix-EmailBridge
bot bridge email imap matrix smtp
Last synced: 5 days ago
JSON representation
A bridge written in Golang to receive and write emails in matrix
- Host: GitHub
- URL: https://github.com/JojiiOfficial/Matrix-EmailBridge
- Owner: JojiiOfficial
- License: bsd-2-clause
- Created: 2019-08-22T19:04:09.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-06-08T18:07:00.000Z (over 1 year ago)
- Last Synced: 2024-08-01T12:23:29.879Z (3 months ago)
- Topics: bot, bridge, email, imap, matrix, smtp
- Language: Go
- Homepage:
- Size: 119 KB
- Stars: 119
- Watchers: 5
- Forks: 14
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - JojiiOfficial/Matrix-EmailBridge - A bridge written in Golang to receive and write emails in matrix (bot)
- awesome-matrix - EmailBridge Matrix
README
# 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](https://github.com/JojiiOfficial/Matrix-EmailBridge#Get-started)### Docker method
DockerHub: https://hub.docker.com/r/jojii/matrix_email_bridge
Run
```bash
docker pull jojii/matrix_email_bridge
```
to pull the image. Then create a container by running
```bash
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](https://github.com/JojiiOfficial/Matrix-EmailBridge#Get-started) you have to run
```bash
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:
```bash
curl -XPOST -d '{"type":"m.login.password", "user":"@mailBotUsername:your-domain.com", "password":"mailbotPassword"}' "https://matrix.your-domain.com/_matrix/client/r0/login"
```
3. Adjust the config file (cfg.json) to make it work with your matrix server:
```JSON
{
"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"
}
```
4. 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 thecfg.json
anddata.db
to 640 or 660 because they contain sensitive data.## Features
- [X] Receiving Email with IMAPs
- [X] Use custom IMAPs Server and port
- [X] Use the bridge with multiple email addresses
- [X] Use the bridge with multiple user
- [X] Ignore SSL certs if required
- [X] Detailed error codes/logging
- [X] Use custom mailbox instead of INBOX
- [X] Sending emails (to one or multiple participants)
- [X] Use markdown (automatically translated to HTML) for writing emails (optional)
- [X] Viewing HTML messages (as good as your matrix-client supports html)
- [X] Attaching files sent into the bridged room
- [X] Emailaddress blocklist (Ignore emails from given emailaddress)## TODO
- [ ] System to send passwords not in plaintext
- [ ] Add more header (CC/Bcc)
- [ ] Update the installerscript