Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 34a6df5317 | |||
| 58d4fb2d43 | |||
| f8d2398d22 |
@@ -4,7 +4,7 @@ PORT=3000
|
|||||||
# Email Configuration
|
# Email Configuration
|
||||||
MAIL_PROVIDER=smtp
|
MAIL_PROVIDER=smtp
|
||||||
MAIL_FROM_EMAIL=noreply@example.com
|
MAIL_FROM_EMAIL=noreply@example.com
|
||||||
MAIL_FROM_NAME=Secure Portal
|
MAIL_FROM_NAME=Mail Server
|
||||||
|
|
||||||
# SMTP (Brevo)
|
# SMTP (Brevo)
|
||||||
SMTP_HOST=smtp-relay.brevo.com
|
SMTP_HOST=smtp-relay.brevo.com
|
||||||
|
|||||||
41
README.md
@@ -1,6 +1,6 @@
|
|||||||
# Mail-Service mit Brevo SMTP
|
# Mail-Service
|
||||||
|
|
||||||
Ein Node.js-basierter Mail-Service mit Weboberfläche zum Versenden von E-Mails über Brevo (ehemals Sendinblue) SMTP. Inklusive persistenter Versand-Historie und eingebettetem Bild-Footer.
|
Ein Node.js-basierter Mail-Service mit Weboberfläche zum Versenden von E-Mails über SMTP. Funktioniert mit jedem SMTP-Anbieter (Brevo, Mailgun, Resend, SendGrid, eigener Mailserver, etc.). Inklusive persistenter Versand-Historie und eingebettetem Bild-Footer.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -9,7 +9,11 @@ Ein Node.js-basierter Mail-Service mit Weboberfläche zum Versenden von E-Mails
|
|||||||
- **Persistente Historie** in SQLite-Datenbank
|
- **Persistente Historie** in SQLite-Datenbank
|
||||||
- **Eingebettete Bilder** via CID-Attachment (werden ohne "Bilder anzeigen" dargestellt)
|
- **Eingebettete Bilder** via CID-Attachment (werden ohne "Bilder anzeigen" dargestellt)
|
||||||
- **REST-API** für programmatischen Zugriff
|
- **REST-API** für programmatischen Zugriff
|
||||||
- **Brevo SMTP** mit DKIM/SPF/DMARC-Unterstützung
|
- **Flexibler SMTP-Versand** - Kompatibel mit allen SMTP-Anbietern
|
||||||
|
|
||||||
|
## Screenshot
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
## Projektstruktur
|
## Projektstruktur
|
||||||
|
|
||||||
@@ -56,25 +60,28 @@ cp .env.example .env
|
|||||||
PORT=3000
|
PORT=3000
|
||||||
|
|
||||||
# Email Configuration
|
# Email Configuration
|
||||||
MAIL_PROVIDER=smtp
|
|
||||||
MAIL_FROM_EMAIL=noreply@example.com
|
MAIL_FROM_EMAIL=noreply@example.com
|
||||||
MAIL_FROM_NAME=Secure Portal
|
MAIL_FROM_NAME=Mein Service
|
||||||
MAIL_FOOTER_NAME=Dein Name
|
MAIL_FOOTER_NAME=Dein Name
|
||||||
|
|
||||||
# SMTP (Brevo)
|
# SMTP
|
||||||
SMTP_HOST=smtp-relay.brevo.com
|
SMTP_HOST=smtp.example.com
|
||||||
SMTP_PORT=587
|
SMTP_PORT=587
|
||||||
SMTP_USER=deine-email@example.com
|
SMTP_USER=dein-username
|
||||||
SMTP_PASSWORD=dein-brevo-smtp-key
|
SMTP_PASSWORD=dein-passwort
|
||||||
SMTP_SECURE=false
|
SMTP_SECURE=false
|
||||||
```
|
```
|
||||||
|
|
||||||
### Brevo SMTP-Key erstellen
|
### SMTP-Anbieter Beispiele
|
||||||
|
|
||||||
1. Bei [Brevo](https://www.brevo.com) einloggen
|
| Anbieter | SMTP_HOST | SMTP_PORT | SMTP_SECURE |
|
||||||
2. Gehe zu: Einstellungen → SMTP & API → SMTP
|
|----------|-----------|-----------|-------------|
|
||||||
3. "SMTP-Schlüssel generieren" klicken
|
| Brevo | smtp-relay.brevo.com | 587 | false |
|
||||||
4. Schlüssel in `.env` als `SMTP_PASSWORD` eintragen
|
| Mailgun | smtp.mailgun.org | 587 | false |
|
||||||
|
| Resend | smtp.resend.com | 465 | true |
|
||||||
|
| SendGrid | smtp.sendgrid.net | 587 | false |
|
||||||
|
| Gmail | smtp.gmail.com | 587 | false |
|
||||||
|
| Eigener Server | mail.domain.de | 465 | true |
|
||||||
|
|
||||||
## Starten
|
## Starten
|
||||||
|
|
||||||
@@ -257,9 +264,9 @@ const nodemailer = require('nodemailer');
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
|
||||||
const transporter = nodemailer.createTransport({
|
const transporter = nodemailer.createTransport({
|
||||||
host: 'smtp-relay.brevo.com',
|
host: process.env.SMTP_HOST,
|
||||||
port: 587,
|
port: parseInt(process.env.SMTP_PORT),
|
||||||
secure: false,
|
secure: process.env.SMTP_SECURE === 'true',
|
||||||
auth: {
|
auth: {
|
||||||
user: process.env.SMTP_USER,
|
user: process.env.SMTP_USER,
|
||||||
pass: process.env.SMTP_PASSWORD
|
pass: process.env.SMTP_PASSWORD
|
||||||
|
|||||||
BIN
assets/blue-green.png
Normal file
|
After Width: | Height: | Size: 910 B |
BIN
assets/blue-red.png
Normal file
|
After Width: | Height: | Size: 884 B |
BIN
assets/blue.png
Normal file
|
After Width: | Height: | Size: 936 B |
BIN
assets/cal-green.png
Normal file
|
After Width: | Height: | Size: 703 B |
BIN
assets/cal.png
Normal file
|
After Width: | Height: | Size: 678 B |
BIN
assets/cog-green.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/cog.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
assets/home-green.png
Normal file
|
After Width: | Height: | Size: 640 B |
BIN
assets/home-red.png
Normal file
|
After Width: | Height: | Size: 670 B |
BIN
assets/psy-green.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
assets/psy-red.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/psy.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
screenshots/screenshot1.png
Normal file
|
After Width: | Height: | Size: 55 KiB |