Mailman은 이메일 서버 데이터베이스를 관리하는 데 도움이 되도록 React로 작성된 SPA입니다.
Thomas Leister의 멋진 메일 서버 튜토리얼: Mailserver mit Dovecot, Postfix, MySQL und Rspamd unter Debian 9 Stretch에서 제공한 데이터베이스 모델을 갖춘 기능적인 메일 서버가 있어야 합니다.
쿼리 삽입, 업데이트 및 삭제를 허용하도록 vmail 데이터베이스 사용자의 권한을 업데이트합니다.
grant select , insert, update , delete on vmail. * to ' vmail ' @ ' localhost ' identified by ' vmaildbpass ' ;
또는 새 사용자를 만듭니다.
grant select , insert, update , delete on vmail. * to ' vmail_mailman ' @ ' localhost ' identified by ' vmaildbpass ' ;
서버에 docker
설치되어 있는 경우 도커 컨테이너에서 Mailman을 실행할 수 있습니다. 그렇지 않으면 배포 섹션으로 이동하여 수동으로 배포하는 방법을 확인하세요.
sample.env
파일 다운로드
wget https://github.com/phiilu/mailman/raw/master/sample.env -O .env
.env
의 변수를 업데이트한 후 mailman을 시작합니다.
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman
설명:
-d
백그라운드에서 컨테이너를 데몬 프로세스로 실행합니다.--net="host"
docker에게 호스트와 네트워크를 공유하도록 지시합니다. 이는 vmail 데이터베이스에 액세스하는 데 필요합니다.--env-file .env
컨테이너에 환경 변수를 설정합니다.--name mailman
docker 컨테이너의 이름을 mailman으로 설정합니다.하위 폴더 구성이 포함된 Docker:
http 루트 /
대신 /mailman
하위 폴더를 통해 mailman에 액세스하려면 다음을 수정해야 합니다.
sample.subfolder.env
파일 다운로드
wget https://github.com/phiilu/mailman/raw/master/sample.subfolder.env -O .env
.env
의 변수를 업데이트한 다음 :subfolder 태그를 사용하여 mailman을 시작합니다.
docker run -d --net= " host " --env-file .env --restart=always --name mailman phiilu/mailman:subfolder
참고: 이 Docker 이미지는 /mailman
경로에만 적용됩니다! 변경할 수 없습니다.
sudo apt install build-essential python
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
nvm이 설치되면 대부분 로그아웃했다가 다시 로그인합니다.
nvm으로 노드 설치
nvm install 9.1.0
$ node -v
v9.1.0
$ npm -v
5.5.1
npm i -g pm2
루트가 아닌 사용자의 홈 디렉토리에 Mailman을 복제하는 것이 가장 쉽습니다.
git clone https://github.com/phiilu/mailman.git
cp sample.env .env
텍스트 편집기로 .env를 열고 구성에 맞게 환경 변수를 조정합니다.
MAILMAN_SECRET
JWT 토큰에 서명하기 위한 길고 고유한 임의 문자열입니다.MAILMAN_DB_ENGINE
메일맨이 사용하는 엔진입니다. 값이 지정되지 않은 경우 기본값은 maria입니다.MAILMAN_DB_USER
vmail
데이터베이스 사용자MAILMAN_DB_PASSWORD
vmail
데이터베이스 사용자의 비밀번호MAILMAN_DB_DATABASE
vmail
데이터베이스MAILMAN_HOST
mailman이 바인딩하는 IP 주소입니다. 기본값은 0.0.0.0
입니다.MAILMAN_PORT
mailman이 바인딩하는 TCP 포트입니다. 기본값은 4000
입니다.MAILMAN_BASENAME
HTTP 베이스입니다. 기본값은 /
MAILMAN_ADMIN
vmail
데이터베이스를 관리할 수 있는 사용자의 이메일 주소하위 폴더 구성:
http 루트 /
대신 /mailman
하위 폴더를 통해 mailman에 액세스하려면 다음을 수정해야 합니다.
Mailman을 빌드하기 전에 다음 단계를 완료해야 합니다!
mailman/client/package.json
을 열고 "homepage": "http://localhost:4000/"
를 "homepage": "http://localhost:4000/mailman"
으로 변경합니다.mailman/client/.env.production
열고 REACT_APP_BASENAME=/
REACT_APP_BASENAME=/mailman
으로 변경합니다.mailman/.env
열고 MAILMAN_BASENAME=/
MAILMAN_BASENAME=/mailman
으로 변경합니다.npm install && cd client && npm install && cd - && npm run build
pm2 kill
로 이미 실행 중인 경우 pm2
를 종료합니다.npm start
무작위 해시를 생성하려면 터미널에서 다음 명령을 사용할 수 있습니다.
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이 서버의 포트 4000
에서 실행되고 있어야 합니다.
mailman 디렉토리 내에서 다음 명령을 실행하십시오.
git stash && git pull && npm install && cd client && npm install && cd - && npm run build && pm2 restart all
docker pull phiilu/mailman:latest
새 이미지를 가져온 후 새 컨테이너를 시작하면 됩니다.
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;
#}
}
Catch All 이메일 주소를 사용하려면 Thomas의 가이드를 참조하세요.
Wie kann ich mit diesem 설정 Catch-All 주소가 현실화되었나요? (독일 사람)
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다.