trashmail
솔루션 - Web UI
, JSON API
, RSS feed
및 Webhook
통해 이메일 수신RSS feed
JSON API
. 2FA 이메일을 자동화하는 데 사용할 수 있습니다Webhook
TLS on connect
Plaintext
, STARTTLS
및 TLS를 지원합니다엔드 포인트 | 설명 | 예제 출력 |
---|---|---|
/ rss/ [email-address] | RSS 클라이언트가 이메일을 렌더링하도록 RSS XML을 렌더링합니다 | |
/API/RAW/ [email-address]/[id] | 주소의 원시 이메일을 반환합니다. 경고 : 출력은 이메일 자체만큼 클 수 있으므로 첨부 파일이 큰 메일의 경우 최대 20MB 일 수 있습니다. | |
/API/ATTHPMENT [email-address]/[attachment-id] | 올바른 마임 유형으로 첨부 파일을 헤더로 반환합니다. | |
/api/delete/ [email-address]/[id] | 특정 이메일 메시지와 첨부 파일을 삭제합니다 | |
/api/deleteaccount/ [email-address] | 이 이메일 계정의 모든 메시지와 첨부 파일을 삭제합니다 |
엔드 포인트 | 설명 | 예제 출력 |
---|---|---|
/ json/ [email-address] | 첨부 파일에 대한 링크와 전자 메일의 구문 분석 된 텍스트 기반 본문이있는 수신 된 이메일 배열을 반환합니다. ADMIN 이메일이 입력되면 모든 계정의 모든 이메일을 반환합니다. | |
/json/ [email-address]/[id] | 수신 된 이메일의 모든 데이터를 보려면 이전 통화에서 ID를 가져 와서 이메일의 원시 및 HTML 본문을 얻으려면이를 조사하십시오. 신체가 Base64의 모든 부착물을 포함 할 수 있으므로 크게 될 수 있습니다. | |
/json/listaccounts | SHOW_ACCOUNT_LIST config.ini에서 true로 설정된 경우,이 엔드 포인트는 하나 이상의 이메일을받은 모든 이메일 주소의 배열을 반환합니다. |
config.ini
다음 설정을 사용할 수 있습니다.
URL
> GUI가 호스팅 될 URL. 꼬리 슬래시가 없습니다! 예 : https://trashmail.mydomain.euDOMAINS
-> 쉼표로 분리 된 도메인 목록이 메일 서버는 이메일을 수신 할 것입니다. 웹 인터페이스가 임의의 주소를 생성 할 수 있도록MAILPORT
-> 포트 파이썬 구동 SMTP 서버가들을 것입니다. Default: 25
ADMIN
> 서버가받은 모든 주소의 모든 이메일을 나열하는 이메일 주소 (존재하지 않아야합니다). 일종의 어획량DATEFORMAT
> 웹 인터페이스에 타임 스탬프를 어떻게 표시 해야하는지 (Moment.js Syntax)PASSWORD
-> 구성이 구성된 경우 양식을 통해 사이트와 API를 제공하지 않고는 사이트와 API를 제공 할 수 없습니다. 양식, Post/Get Variable password
또는 HTTP 헤더 PWD
(예 : curl -H "PWD: 123456" http://localhost:8080/json...
))ALLOWED_IPS
> Comma 웹 UI 또는 API를 사용할 수있는 IPv4 또는 IPv6 CIDR 주소의 분리 목록ATTACHMENTS_MAX_SIZE
> 바이트로 이메일의 각 개별 첨부 파일에 대한 최대 크기MAILPORT_TLS
> 0보다 높은 것으로 설정되면이 포트는 TLSC (TLS ON CONNECT)에 사용됩니다. 이는 일반 텍스트 인증이 불가능하다는 것을 의미합니다. 일반적으로 465
로 설정됩니다. 작동하려면 TLS_CERTIFICATE
및 TLS_PRIVATE_KEY
필요합니다TLS_CERTIFICATE
> 인증서 (체인)로가는 경로. /Python 디렉토리 또는 절대와 관련이있을 수 있습니다TLS_PRIVATE_KEY
> 인증서의 개인 키로가는 경로. /Python 디렉토리 또는 절대와 관련이있을 수 있습니다WEBHOOK_URL
> 설정된 경우 이메일의 JSON 데이터와 함께이 URL에 게시물 요청을 보냅니다. 자신의 프로젝트에서 OpentRashmail을 통합하는 데 사용할 수 있습니다.ADMIN_ENABLED
> 관리자 메뉴를 활성화합니다. 기본 false
ADMIN_PASSWORD
> 설정된 경우 관리자 메뉴에 액세스하려면이 비밀번호가 필요합니다. Docker에서는 다음 환경 변수를 사용할 수 있습니다.
Env var | 그것이하는 일 | 예제 값 |
---|---|---|
URL | 웹 인터페이스의 URL. API 및 RSS 피드에서 사용합니다 | http : // localhost : 8080 |
discard_unknown | MailServer에게 구성되지 않은 도메인으로 주소되는 이메일을 삭제하거나 삭제하지 않도록 지시합니다. | 사실, 거짓 |
도메인 | 서버가들을 수있는 화이트리스트 도메인. Discard_unkNown이 False로 설정된 경우 WebInterface에서 임의의 이메일을 생성하는 데만 사용됩니다. | |
show_account_list | true 로 설정된 경우 이전에받은 이메일을받은 모든 계정은 API 또는 WebInterface를 통해 나열 될 수 있습니다. | 사실, 거짓 |
관리자 | 유효한 이메일 주소로 설정 되고이 주소가 API 또는 WebInterface에 입력되면 모든 계정의 모든 이메일이 표시됩니다. 어획량 | [email protected] |
DateFormat | Moment.js 구문에 따라 웹 인터페이스에서 수신 날짜를 포맷합니다. | "mmmm do yyyy, h : mm : ss a" |
skip_filepermissions | true 로 설정된 경우 컨테이너의 코드 데이터 폴더에 대한 파일 권한을 수정하지 않습니다. 로컬 개발자에게 유용합니다. 기본 false | 사실, 거짓 |
비밀번호 | 구성된 경우 양식, 가변 password 또는 HTTP 헤더 PWD 를 통해 사이트와 API를 사용할 수 없습니다. | yousrstrongpassword |
허용 _ips | 웹 UI 또는 API를 사용할 수있는 IPv4 또는 IPv6 CIDR 주소의 Comma 분리 목록 | 192.168.5.0/24,2a02:ab:cd:ef::/60,172.16.0.0/16 |
첨부 파일 _max_size | 바이트로 이메일의 각 개별 첨부 파일에 대한 최대 크기 | 2000000 = 2MB |
mailport_tls | 0보다 높은 것으로 설정되면이 포트는 TLSC (TLS ON CONNECT)에 사용됩니다. 이는 일반 텍스트 인증이 불가능하다는 것을 의미합니다. 일반적으로 465 로 설정됩니다. 작동하려면 TLS_CERTIFICATE 및 TLS_PRIVATE_KEY 필요합니다 | 465 |
tls_certificate | 인증서 (체인)로가는 경로. /Python 디렉토리 또는 절대와 관련이있을 수 있습니다 | /certs/cert.pem 또는 cert.pem Python 디렉토리 안에있는 경우 |
tls_private_key | 인증서의 개인 키로가는 길. /Python 디렉토리 또는 절대와 관련이있을 수 있습니다 | python 디렉토리 안에있는 경우 /certs/privkey.pem 또는 key.pem |
webhook_url | 설정된 경우 전자 메일의 JSON 데이터를 본문으로 사용 하여이 URL에 게시물 요청을 보냅니다. 자신의 프로젝트에서 OpentRashmail을 통합하는 데 사용할 수 있습니다. | https://example.com/webhook |
admin_enabled | 관리 메뉴를 활성화합니다. 기본 false | false / true |
admin_password | 설정된 경우 관리자 메뉴에 액세스하려면이 비밀번호가 필요합니다. | 123456 |
v1.3.0 tls 및 starttls는 opentrashmail에 의해 지원되기 때문에.
이메일과 함께 TLS를 사용하는 두 가지 방법이 있습니다.
STARTTLS는 일반 텍스트로 시작한 다음 서버가 "startTls"명령을 광고하면 TLS로 업그레이드하므로 특정 포트가 필요하지 않습니다 (인증서 및 키 설정이 구성되면 OPENTRASHMAIL이 자동으로 수행됨). 기본 MAILPORT
에서 실행되므로 다른 포트를 열 필요가 없습니다.
Connect의 TLS는 노출 된 포트 주위에 TLS를 감싸고 있으므로 일반 텍스트로 대화 할 수 없으므로 작동하려면 다른 포트가 필요합니다. 일반적으로 포트 465가 사용됩니다.
TLS가 작동하려면 먼저 SMTP 서버의 호스트 이름에 해당하는 인증서가 필요합니다. 이것은 let'encrypt를 사용하여 수행 할 수 있으며 와일드 카드 인증서와 함께 작동합니다.
테스트 환경의 경우 Python 폴더 내부에서 다음 명령을 실행하여 인증서를 만들 수 있습니다.
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes -subj ' /CN=localhost '
그런 다음 MAILPORT_TLS
설정을 설정해야합니다 (startTls 만 지원하려면 필요하지 않음), TLS_CERTIFICATE
및 TLS_PRIVATE_KEY
.
/docs/dev.md 파일에는 TLS 및 TLSC 연결을 디버그하고 테스트하는 방법에 대한 몇 가지 힌트가 포함되어 있습니다. 모든 패키지 관리자에서는 AVAIALBLE가 있어야하는 도구 swaks
사용합니다.
DNS 패널에서 OpentRashMail을 호스팅하는 서버의 IP를 가리키는 도메인에 대한 MX 레코드를 만듭니다.
다음 예제는 example.com으로 이메일을 보낼 수 있습니다.
mail.example.com. IN A 93.184.216.34
example.com. 14400 IN MX 10 mail.example.com.
이 고급 예제는 와일드 카드 도메인을 사용할 수 있습니다.
mail.example.com. IN A 93.184.216.34
*.example.com. 14400 IN MX 10 mail.example.com.
이는 구성 옵션 "도메인"(예 : docker parameter -e DOMAINS="*.example.com"
)과 결합하여 examply.com (eg [email protected], [email protected] 등 ..)
지속성없이 간단한 시작
docker run -it -p 25:25 -p 80:80 -e URL= " https://localhost:80 " hascheksolutions/opentrashmail:1
호스트 머신에 데이터 디렉토리 저장
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
완전한 예제 DEAMON, PERISTENCE, 이메일의 자동 생성 도메인, 구성된 도메인 용 이메일 만, 90 일 이상의 우편 정리 및 자동 재시작
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
Open Trashmail의 핵심은 들어오는 이메일을 듣고 JSON 파일로 저장하는 Python 기반 SMTP 서버 입니다. 서버는 올바른 전자 메일 도메인을 알 필요가 없으며받는 모든 것을 포착 합니다. 포트 25를 웹에 노출시키고 기계의 IP 주소를 가리키는 도메인의 MX 레코드를 설정하면됩니다.