Mailman adalah SPA yang ditulis dalam React untuk membantu Anda mengelola database server email Anda.

Anda harus memiliki server surat yang berfungsi dengan model basis data yang disediakan oleh Thomas Leister dalam tutorial server suratnya yang luar biasa: Server surat dengan Dovecot, Postfix, MySQL dan Rspamd di Debian 9 Stretch
Perbarui izin pengguna basis data vmail untuk mengizinkan kueri penyisipan, pembaruan, dan penghapusan:
grant select , insert, update , delete on vmail. * to ' vmail ' @ ' localhost ' identified by ' vmaildbpass ' ;Atau buat pengguna baru:
grant select , insert, update , delete on vmail. * to ' vmail_mailman ' @ ' localhost ' identified by ' vmaildbpass ' ; Jika Anda telah menginstal docker di server Anda, Anda dapat menjalankan Mailman di wadah buruh pelabuhan jika tidak, buka bagian Penerapan untuk melihat cara menyebarkannya secara manual.
Unduh file sample.env
wget https://github.com/phiilu/mailman/raw/master/sample.env -O .env Perbarui variabel di .env lalu mulai tukang pos:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailmanPenjelasan:
-d menjalankan container sebagai proses daemon alias di latar belakang--net="host" menginstruksikan buruh pelabuhan untuk berbagi jaringan dengan host. Ini diperlukan untuk mengakses database vmail--env-file .env menyetel variabel lingkungan dalam wadah--name mailman menetapkan nama wadah buruh pelabuhan menjadi tukang posDocker dengan konfigurasi Subfolder:
Jika Anda ingin mengakses mailman melalui subfolder /mailman alih-alih http root / , Anda harus mengubah yang berikut ini:
Unduh file sample.subfolder.env
wget https://github.com/phiilu/mailman/raw/master/sample.subfolder.env -O .env Perbarui variabel di .env lalu mulai tukang pos dengan tag :subfolder:
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman:subfolder Catatan: Gambar Docker ini hanya untuk jalur /mailman ! Itu tidak bisa diubah.
sudo apt install build-essential pythoncurl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bashSetelah nvm terinstal, Anda paling logout dan login lagi.
Instal simpul dengan nvm
nvm install 9.1.0$ node -v
v9.1.0
$ npm -v
5.5.1npm i -g pm2Cara termudah adalah jika Anda mengkloning Mailman ke direktori home pengguna non-root.
git clone https://github.com/phiilu/mailman.gitcp sample.env .envBuka .env dengan editor teks dan sesuaikan variabel lingkungan dengan konfigurasi Anda:
MAILMAN_SECRET string acak unik yang panjang untuk menandatangani token JWTMAILMAN_DB_ENGINE mesin yang digunakan oleh tukang pos. default ke maria jika tidak ada nilai yang diberikan.MAILMAN_DB_USER pengguna basis data vmailMAILMAN_DB_PASSWORD kata sandi untuk pengguna database vmailMAILMAN_DB_DATABASE basis data vmailMAILMAN_HOST alamat IP yang diikatkan oleh tukang pos. Standarnya adalah 0.0.0.0MAILMAN_PORT yang diikatkan oleh tukang pos port TCP. Standarnya adalah 4000MAILMAN_BASENAME basis HTTP. Standarnya adalah /MAILMAN_ADMIN alamat email pengguna, yang diizinkan untuk mengelola database vmailKonfigurasi subfolder:
Jika Anda ingin mengakses mailman melalui subfolder /mailman alih-alih http root / , Anda harus mengubah yang berikut ini:
Langkah-langkah ini perlu dilakukan SEBELUM Anda membangun Mailman!
mailman/client/package.json dan ubah "homepage": "http://localhost:4000/" menjadi "homepage": "http://localhost:4000/mailman"mailman/client/.env.production dan ubah REACT_APP_BASENAME=/ menjadi REACT_APP_BASENAME=/mailmanmailman/.env dan ubah MAILMAN_BASENAME=/ menjadi MAILMAN_BASENAME=/mailmannpm install && cd client && npm install && cd - && npm run buildpm2 jika sudah berjalan dengan pm2 killnpm startUntuk menghasilkan hash acak Anda dapat menggunakan perintah di terminal Anda:
head /dev/urandom | tr -dc A-Za-z0-9 | head -c 128 ; echo ' ' cd mailman && npm install && cd client && npm install && cd - && npm run buildnpm start Mailman sekarang seharusnya berjalan pada port 4000 server.
Jalankan perintah berikut di dalam direktori tukang pos
git stash && git pull && npm install && cd client && npm install && cd - && npm run build && pm2 restart alldocker pull phiilu/mailman:latestSetelah menarik gambar baru, mulailah wadah baru.
server {
listen 80 ;
server_name mailman.example.org;
##
## Uncomment one of the two possibilities
##
# Subdomain
#location / {
# proxy_pass http://localhost:4000;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
#}
# Subfolder
#location /mailman {
# proxy_pass http://localhost:4000;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
#}
}Jika Anda ingin menggunakan alamat email Catch All, silakan merujuk ke Panduan Thomas:
Apakah mungkin untuk membuat pengaturan Catch-All Addresses menjadi kenyataan? (Jerman)
Proyek ini dilisensikan di bawah Lisensi MIT