trashmail
Selfhosted - Terima email melalui Web UI
, JSON API
, RSS feed
dan Webhook
RSS feed
untuk setiap alamat emailJSON API
untuk mengintegrasikannya dalam proyek Anda sendiri. Dapat digunakan untuk mengotomatisasi email 2FAWebhook
untuk mengintegrasikannya dalam proyek Anda sendiriPlaintext
, STARTTLS
dan TLS on connect
Titik akhir | Penjelasan | Output contoh |
---|---|---|
/ RSS/ [email-address] | Merender RSS XML untuk klien RSS untuk membuat email | |
/API/RAW/ [email-address]/[id] | Mengembalikan email mentah alamat. Peringatan: Output bisa sebesar email itu sendiri sehingga mungkin hingga 20MB untuk surat dengan lampiran besar | |
/API/Lampiran [email-address]/[attachment-id] | Mengembalikan lampiran dengan tipe pantomim yang benar sebagai header | |
/API/Hapus/ [email-address]/[id] | Menghapus pesan email tertentu dan lampirannya | |
/API/deleteAccount/ [email-address] | Menghapus semua pesan dan lampiran dari akun email ini |
Titik akhir | Penjelasan | Output contoh |
---|---|---|
/ JSON/ [email-address] | Mengembalikan berbagai email yang diterima dengan tautan ke lampiran dan badan berbasis teks yang diuraikan dari email tersebut. Jika email ADMIN dimasukkan, akan mengembalikan semua email dari semua akun | |
/JSON/ [email-address]/[id] | Untuk melihat semua data dari email yang diterima, ambil ID dari panggilan sebelumnya dan jajak pendapat ini untuk mendapatkan badan RAW dan HTML dari email. Bisa sangat besar karena tubuh dapat berisi semua lampiran di base64 | |
/json/listaccounts | Jika SHOW_ACCOUNT_LIST diatur ke true di config.ini, titik akhir ini akan mengembalikan array dari semua alamat email yang telah menerima setidaknya satu email |
Cukup edit config.ini
Anda dapat menggunakan pengaturan berikut
URL
-> URL di mana GUI akan di -host. Tidak ada tebasan ekor! Contoh: https://trashmail.mydomain.euDOMAINS
-> Daftar Domain yang Dipisahkan Koma Server surat ini akan menerima email. Itu hanya agar antarmuka web dapat menghasilkan alamat acakMAILPORT
-> Port yang akan didengarkan oleh server SMTP yang bertenaga Python. Default: 25
ADMIN
-> Alamat email (tidak harus ada, hanya harus valid) yang akan mencantumkan semua email dari semua alamat yang diterima server. Jenis tangkapan-semuaDATEFORMAT
-> Bagaimana seharusnya cap waktu ditampilkan di antarmuka web (momen.js sintaks)PASSWORD
-> Jika dikonfigurasi, Situs dan API tidak dapat digunakan tanpa menyediakannya melalui formulir, post/get variable password
atau header http PWD
(misalnya: curl -H "PWD: 123456" http://localhost:8080/json...
)ALLOWED_IPS
-> Daftar IPv4 atau IPv6 CIDR yang dipisahkan yang diizinkan untuk menggunakan UI atau API WebATTACHMENTS_MAX_SIZE
-> ukuran maks untuk setiap lampiran individu dari email dalam byteMAILPORT_TLS
-> Jika diatur ke sesuatu yang lebih tinggi dari 0, port ini akan digunakan untuk TLSC (TLS di Connect). Yang berarti Plaintext Auth tidak akan mungkin terjadi. Biasanya diatur ke 465
. Membutuhkan TLS_CERTIFICATE
dan TLS_PRIVATE_KEY
untuk bekerjaTLS_CERTIFICATE
-> path ke sertifikat (rantai). Bisa relatif terhadap direktori /python atau absolutTLS_PRIVATE_KEY
-> path ke kunci pribadi sertifikat. Bisa relatif terhadap direktori /python atau absolutWEBHOOK_URL
-> Jika diatur, akan mengirim permintaan posting ke URL ini dengan data JSON dari email sebagai badan. Dapat digunakan untuk mengintegrasikan opentrashmail dalam proyek Anda sendiriADMIN_ENABLED
-> Mengaktifkan menu admin. false
defaultADMIN_PASSWORD
-> jika diatur, membutuhkan kata sandi ini untuk mengakses menu admin Di Docker Anda dapat menggunakan variabel lingkungan berikut:
Env var | Apa yang dilakukannya | Nilai contoh |
---|---|---|
Url | URL antarmuka web. Digunakan oleh API dan RSS Feed | http: // localhost: 8080 |
Discard_unknown | Memberitahu MailServer untuk membasmi atau tidak menghapus email yang ditujukan ke domain yang tidak dikonfigurasi | Benar, salah |
Domain | Domain yang masuk daftar putih yang akan didengarkan server. Jika Discard_unknown diatur ke False, ini hanya akan digunakan untuk menghasilkan email acak di WebInterface | |
Show_account_list | Jika diatur ke true , semua akun yang sebelumnya menerima email dapat terdaftar melalui API atau WebInterface | Benar, salah |
Admin | Jika diatur ke alamat email yang valid dan alamat ini dimasukkan dalam API atau WebInterface, akan menampilkan semua email dari semua akun. Jenis tangkapan-semua | [email protected] |
Format date | Akan memformat tanggal yang diterima di antarmuka web berdasarkan sintaks momen.js | "Mmmm do yyyy, h: mm: ss a" |
Skip_filePermissions | Jika diatur ke true , tidak akan memperbaiki izin file untuk folder data kode di wadah. Berguna untuk dev lokal. false default | Benar, salah |
KATA SANDI | Jika dikonfigurasi, situs dan API tidak dapat digunakan tanpa menyediakannya melalui formulir, post/get variable password atau header http PWD | YousrstrongPassword |
Diizinkan_ips | Daftar terpisah koma dari alamat CIDR IPv4 atau IPv6 yang diizinkan untuk menggunakan UI atau API Web | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
Attachments_max_size | Ukuran maksimal untuk setiap lampiran individu email dalam byte | 2000000 = 2MB |
Mailport_tls | Jika diatur ke sesuatu yang lebih tinggi dari 0, port ini akan digunakan untuk TLSC (TLS di Connect). Yang berarti Plaintext Auth tidak akan mungkin terjadi. Biasanya diatur ke 465 . Membutuhkan TLS_CERTIFICATE dan TLS_PRIVATE_KEY untuk bekerja | 465 |
Tls_certificate | Jalur ke sertifikat (rantai). Bisa relatif terhadap direktori /python atau absolut | /certs/cert.pem atau cert.pem jika ada di dalam direktori Python |
Tls_private_key | Jalur ke kunci pribadi sertifikat. Bisa relatif terhadap direktori /python atau absolut | /certs/privkey.pem atau key.pem jika ada di dalam direktori Python |
Webhook_Url | Jika diatur, akan mengirim permintaan posting ke URL ini dengan data JSON dari email sebagai badan. Dapat digunakan untuk mengintegrasikan opentrashmail dalam proyek Anda sendiri | https://example.com/webhook |
Admin_enabled | Mengaktifkan menu admin. false default | false / true |
Admin_password | Jika diatur, membutuhkan kata sandi ini untuk mengakses menu admin | 123456 |
Karena v1.3.0 TL dan startTl didukung oleh Opentrashmail.
Ketahuilah ada dua cara untuk menggunakan TLS dengan email
StartTls tidak memerlukan port tertentu karena dimulai sebagai Plaintext dan kemudian meningkatkan ke TLS jika server mengiklankan perintah "StartTLS" (yang OpentRashMail lakukan secara otomatis jika sertifikat dan pengaturan kunci dikonfigurasi). Karena dijalankan di MAILPORT
default, Anda tidak perlu membuka port lain agar berfungsi.
TLS di Connect adalah membungkus TLS di sekitar port yang terbuka sehingga tidak mungkin untuk membicarakannya di Plaintext dan oleh karena itu perlu port yang berbeda untuk bekerja. Biasanya port 465 digunakan untuk ini.
Agar TLS bekerja, Anda pertama -tama memerlukan sertifikat yang sesuai dengan nama host dari server SMTP. Ini dapat dilakukan dengan menggunakan LetSrypt dan bahkan bekerja dengan sertifikat wildcard.
Untuk lingkungan pengujian, Anda dapat membuat sertifikat dengan menjalankan perintah berikut dari dalam folder Python:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
Anda kemudian perlu mengatur pengaturan untuk MAILPORT_TLS
(tidak diperlukan jika Anda hanya ingin mendukung startTls), TLS_CERTIFICATE
dan TLS_PRIVATE_KEY
.
File /docs/dev.md berisi beberapa petunjuk tentang cara men -debug dan menguji koneksi TLS dan TLSC. Ini menggunakan alat swaks
yang harus tersedia di setiap manajer paket.
Di panel DNS Anda, buat catatan MX untuk domain Anda yang menunjuk ke IP dari server hosting OpentRashMail.
Contoh berikut akan memungkinkan Anda untuk mengirim email ke example.com
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
Contoh lanjutan ini akan memungkinkan Anda untuk menggunakan domain wildcard:
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
Ini dalam kombinasi dengan opsi konfigurasi "domain" (misalnya parameter Docker -e DOMAINS="*.example.com"
) akan memungkinkan Anda menggunakan alamat apa pun dengan subdomain dari example.com (misalnya [email protected], [email protected], dll.)
Mulai sederhana tanpa kegigihan
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
Menyimpan direktori data pada mesin host
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
Contoh Lengkap Dengan Berlari Sebagai Daemon, Kegigihan, Domain Untuk Generasi Auto-Email, AcceptNG Hanya Email Untuk Domain Yang Dikonfigurasi, Pembersihan untuk Surat yang Lebih Tua Dari 90 Hari dan Restart Otomatis
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
Jantung Open Trashmail adalah server SMTP bertenaga Python yang mendengarkan email yang masuk dan menyimpannya sebagai file JSON. Server tidak harus mengetahui domain email yang tepat, itu hanya akan menangkap semua yang diterimanya. Anda hanya perlu mengekspos port 25 ke web dan menetapkan catatan MX dari domain Anda yang menunjuk ke alamat IP mesin Anda.