trashmail
- erhalten Sie E -Mails über Web UI
, JSON API
, RSS feed
und Webhook
RSS feed
für jede E -Mail -AdresseJSON API
zur Integration in Ihre eigenen Projekte. Kann verwendet werden, um 2FA -E -Mails zu automatisierenWebhook
zum Integrieren in Ihre eigenen ProjektePlaintext
, STARTTLS
und TLS on connect
Endpunkt | Erläuterung | Beispielausgabe |
---|---|---|
/ RSS/ [email-address] | Renders RSS XML für RSS -Kunden, um E -Mails zu senden | |
/api/raw/ [email-address]/[id] | Gibt die rohe E -Mail der Adresse zurück. WARNUNG: Die Ausgabe kann so groß sein wie die E -Mail selbst und kann bis zu 20 MB für E -Mails mit großen Anhängen sein | |
/API/Anhang [email-address]/[attachment-id] | Gibt den Anhang mit dem richtigen MIME -Typ als Header zurück | |
/api/delete/ [email-address]/[id] | Löscht eine bestimmte E -Mail -Nachricht und ihre Anhänge | |
/API/DeleteAccount/ [email-address] | Löscht alle Nachrichten und Anhänge dieses E -Mail -Kontos |
Endpunkt | Erläuterung | Beispielausgabe |
---|---|---|
/ JSON/ [email-address] | Gibt eine Reihe von empfangenen E -Mails mit Links zu den Anhängen und dem textbasierten Körper der E -Mail zurück. Wenn ADMIN -E -Mail eingegeben wird, gibt alle E -Mails aller Konten zurück | |
/JSON/ [email-address]/[id] | Um alle Daten einer empfangenen E -Mail anzuzeigen, nehmen Sie die ID aus dem vorherigen Anruf und befragen Sie dies, um den RAW- und HTML -Körper der E -Mail zu erhalten. Kann riesig sein, da der Körper alle Ansätze in Base64 enthalten kann | |
/JSON/List Accounts | Wenn SHOW_ACCOUNT_LIST in der config.ini auf true eingestellt ist, gibt dieser Endpunkt ein Array aller E -Mail -Adressen zurück, die mindestens eine E -Mail erhalten haben |
Bearbeiten Sie einfach die config.ini
Sie können die folgenden Einstellungen verwenden
URL
-> Die URL, unter der die GUI gehostet wird. Kein Tailing Slash! Beispiel: https://trashmail.mydomain.euDOMAINS
-> Comma getrennte Domänenliste Dieser Mailserver empfängt E -Mails. Es ist nur so, dass die Weboberfläche zufällige Adressen generieren kannMAILPORT
-> Der Port Der SMTP -Server mit Python -betriebenen SMTP -Server hört sich an. Default: 25
ADMIN
-> Eine E -Mail -Adresse (muss nicht existieren, muss nur gültig sein), in dem alle E -Mails aller Adressen aufgeführt sind, die der Server empfangen hat. Art von HakenDATEFORMAT
-> Wie sollten Zeitstempel auf der Webschnittstelle angezeigt werden (moment.js syntax)PASSWORD
-> Wenn Sie konfiguriert sind, können Site und API nicht verwendet werden, ohne es über das Formular anzugeben, variable password
oder HTTP -Header PWD
(z. B. curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> COMMA getrennte Liste von IPv4- oder IPv6 -CIDRATTACHMENTS_MAX_SIZE
-> Maximale Größe für jeden einzelnen Anhang einer E -Mail in BytesMAILPORT_TLS
-> Wenn dieser Port auf etwas höher als 0 gesetzt ist, wird dieser Port für TLSC (TLS auf Connect) verwendet. Was bedeutet, dass Klartext -Auth nicht möglich ist. Normalerweise auf 465
eingestellt. Benötigt TLS_CERTIFICATE
und TLS_PRIVATE_KEY
um zu arbeitenTLS_CERTIFICATE
-> Pfad zum Zertifikat (Kette). Kann relativ zum /Python -Verzeichnis oder absolut seinTLS_PRIVATE_KEY
-> Pfad zum privaten Schlüssel des Zertifikats. Kann relativ zum /Python -Verzeichnis oder absolut seinWEBHOOK_URL
-> Wenn gesetzt, sendet eine Postanforderung mit den JSON -Daten der E -Mail als Karosserie an diese URL. Kann verwendet werden, um OpentrasHmail in Ihre eigenen Projekte zu integrierenADMIN_ENABLED
-> Aktiviert das Admin -Menü. Standard false
ADMIN_PASSWORD
-> Wenn festgelegt, muss dieses Kennwort auf das Admin -Menü zugreifen In Docker können Sie die folgenden Umgebungsvariablen verwenden:
Env var | Was es tut | Beispielwerte |
---|---|---|
URL | Die URL der Webschnittstelle. Verwendet von der API und RSS -Feed | http: // localhost: 8080 |
Entwirrt_UunkNOWN | Teilt dem MailServer mit, dass sie E -Mails löschen oder nicht, die nicht an Domänen gerichtet sind, die nicht konfiguriert sind | Richtig, falsch |
Domänen | Die Whitelisted Domains, auf die der Server zuhört. Wenn Decard_UunkNown auf false eingestellt ist, wird dies nur zum Generieren zufälliger E -Mails im WebInterface verwendet | |
Show_account_list | Wenn auf true festgelegt wird, können alle Konten, die zuvor erhalten haben, E -Mails über API oder WebInterface aufgeführt werden | Richtig, falsch |
Administrator | Wenn auf eine gültige E -Mail -Adresse festgelegt und diese Adresse in die API oder das Webinterface eingegeben wird, werden alle E -Mails aller Konten angezeigt. Art von Haken | [email protected] |
DateFormat | Formatiert das empfangene Datum in der Webschnittstelle basierend auf moment.js syntax | "Mmmm do yyyy, h: mm: ss a" |
Skip_Filepermissionen | Wenn Sie auf true eingestellt sind, fixieren Sie keine Dateiberechtigungen für den Codedatenordner im Container. Nützlich für lokale Dev. Standard false | Richtig, falsch |
PASSWORT | Wenn Site und API konfiguriert werden, können Sie nicht ohne Formular über das Formular variable password oder HTTP -Header PWD verwendet werden | yousrstrongPassword |
Erlaubt_ips | Komma -getrennte Liste von IPv4- oder IPv6 -CIDR -Adressen, mit denen die Web -Benutzeroberfläche oder die API | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
Anhänge_MAX_SIZE | Maximale Größe für jeden einzelnen Anhang einer E -Mail in Bytes | 2000000 = 2 MB |
Mailport_tls | Wenn dieser Port auf etwas höher als 0 eingestellt ist, wird dieser Port für TLSC (TLS auf Connect) verwendet. Was bedeutet, dass Klartext -Auth nicht möglich ist. Normalerweise auf 465 eingestellt. Benötigt TLS_CERTIFICATE und TLS_PRIVATE_KEY um zu arbeiten | 465 |
Tls_certificate | Pfad zum Zertifikat (Kette). Kann relativ zum /Python -Verzeichnis oder absolut sein | /certs/cert.pem oder cert.pem Wenn es sich im Python -Verzeichnis befindet |
Tls_private_key | Pfad zum privaten Schlüssel des Zertifikats. Kann relativ zum /Python -Verzeichnis oder absolut sein | /certs/privkey.pem oder key.pem wenn es sich im Python -Verzeichnis befindet |
Webhook_url | Wenn Sie festgelegt sind, senden Sie eine Postanforderung an diese URL mit den JSON -Daten der E -Mail als Körper. Kann verwendet werden, um OpentrasHmail in Ihre eigenen Projekte zu integrieren | https://example.com/webhook |
Admin_Enabled | Aktiviert das Admin -Menü. Standard false | false / true |
Admin_password | Wenn festgelegt, benötigt dieses Passwort, um auf das Admin -Menü zuzugreifen | 123456 |
Da v1.3.0 TLS und Starttls von Opentrashmail unterstützt werden.
Beachten Sie, dass es zwei Möglichkeiten gibt, TLS mit E -Mail zu verwenden
StartTLs benötigt keinen bestimmten Port, da er als Klartext beginnt und dann auf TLS aufgerüstet wird, wenn der Server für den Befehl "starttls" wirbt (die opentrashmail automatisch ausführt, wenn das Zertifikat und die Schlüsseleinstellungen konfiguriert sind). Da es auf dem Standard MAILPORT
ausgeführt wird, müssen Sie keine anderen Ports öffnen, damit es funktioniert.
TLS on Connect ist das Wickeln von TLs um die exponierten Ports, sodass es nicht möglich ist, im Klartext mit ihm zu sprechen, und daher benötigt es einen anderen Port, um zu arbeiten. Normalerweise wird dafür Port 465 verwendet.
Damit TLS funktioniert, benötigen Sie zunächst ein Zertifikat, das dem Hostnamen des SMTP -Servers entspricht. Dies kann mit Lets'encrypt erfolgen und funktioniert sogar mit Wildcard -Zertifikaten.
Für Testumgebungen können Sie ein Zertifikat erstellen, indem Sie den folgenden Befehl aus dem Ordner Python ausführen:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
Sie müssen dann die Einstellungen für MAILPORT_TLS
festlegen (nicht benötigt, wenn Sie nur Starttls unterstützen möchten), TLS_CERTIFICATE
und TLS_PRIVATE_KEY
.
Die Datei /docs/dev.md enthält einige Hinweise zum Debuggen und Testen von TLS- und TLSC -Verbindungen. Es verwendet das Tool swaks
, das in jedem Paketmanager unterteilt werden sollte.
Erstellen Sie in Ihrem DNS -Panel einen MX -Datensatz für Ihre Domain, der auf die IP des Server -Hosting -OpentrashMail zeigt.
Mit dem folgenden Beispiel können Sie E -Mails an example.com senden
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
In diesem erweiterten Beispiel können Sie eine Wildcard -Domäne verwenden:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
Dies in Kombination mit der Konfigurationsoption "Domänen" (z. B. Docker -Parameter -e DOMAINS="*.example.com"
) ermöglicht es Ihnen, eine beliebige Adresse mit einer beliebigen Unterdomäne von example.com zu verwenden (z. B. [email protected], [email protected] usw.)
Einfacher Start ohne Ausdauer
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
Speichern des Datenverzeichnisses auf dem Hostmaschine
docker run -p 80:80 -p 25:25 -e URL= " https://localhost:80 " -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
Vollständiges Beispiel mit dem Laufen als Dämon, Persistenz, einer Domäne für die automatische Generation von E-Mails, akzeptieren Sie nur E-Mails für konfigurierte Domänen, Reinigung für E-Mails älter als 90 Tage und automatisch neu starten
docker run -d --restart=unless-stopped --name opentrashmail -e " DOMAINS=mydomain.eu " -e " DATEFORMAT='D.M.YYYY HH:mm' " -e " DISCARD_UNKNOWN=false " -e " DELETE_OLDER_THAN_DAYS=90 " -p 80:80 -p 25:25 -v /path/on/host/where/to/save/data:/var/www/opentrashmail/data hascheksolutions/opentrashmail:1
Das Herz der offenen Trasklmail ist ein Python-SMTP-Server , der auf eingehende E-Mails hört und sie als JSON-Dateien speichert. Der Server muss die richtige E -Mail -Domäne nicht kennen, sondern nur alles, was er erhält. Sie müssen Port 25 nur dem Web aussetzen und einen MX -Datensatz Ihrer Domäne auf die IP -Adresse Ihres Computers festlegen.