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/mailman
Penjelasan:
-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 python
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
Setelah 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.1
npm i -g pm2
Cara termudah adalah jika Anda mengkloning Mailman ke direktori home pengguna non-root.
git clone https://github.com/phiilu/mailman.git
cp sample.env .env
Buka .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 vmail
MAILMAN_DB_PASSWORD
kata sandi untuk pengguna database vmail
MAILMAN_DB_DATABASE
basis data vmail
MAILMAN_HOST
alamat IP yang diikatkan oleh tukang pos. Standarnya adalah 0.0.0.0
MAILMAN_PORT
yang diikatkan oleh tukang pos port TCP. Standarnya adalah 4000
MAILMAN_BASENAME
basis HTTP. Standarnya adalah /
MAILMAN_ADMIN
alamat email pengguna, yang diizinkan untuk mengelola database vmail
Konfigurasi 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=/mailman
mailman/.env
dan ubah MAILMAN_BASENAME=/
menjadi MAILMAN_BASENAME=/mailman
npm install && cd client && npm install && cd - && npm run build
pm2
jika sudah berjalan dengan pm2 kill
npm start
Untuk 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 build
npm 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 all
docker pull phiilu/mailman:latest
Setelah 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